<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4773754154418185622</id><updated>2024-09-04T15:29:03.081-07:00</updated><category term="Mysql"/><category term="PHP Library"/><title type='text'>Techman</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://techmanpoint.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://techmanpoint.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Techman</name><uri>http://www.blogger.com/profile/04481939313438232443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4773754154418185622.post-58028182787291598</id><published>2011-01-06T19:37:00.000-08:00</published><updated>2011-01-06T19:37:34.243-08:00</updated><title type='text'>A query optimizer practice about &quot;force index&quot;</title><content type='html'>Two tables:&lt;br /&gt;
table keywords (keyword_id int, keyword varchar(255));&lt;br /&gt;
table adwords (keyword_id int, local_traffic, global_traffic);&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;mysql&amp;gt; explain select * from keywords left join adwords on keywords.keyword_id = adwords.keyword_id where keyword like &#39;car%&#39;;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;+----+-------------+----------+-------+---------------+----------+---------+------------------------------+-------+--------------------------+&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;| id | select_type | table    | type  | possible_keys | key      | key_len | ref                          | rows  | Extra                    |&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;+----+-------------+----------+-------+---------------+----------+---------+------------------------------+-------+--------------------------+&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;|  1 | SIMPLE      | keywords | range | ukeyword      | ukeyword | 152     | NULL                         | &lt;span style=&quot;color: red;&quot;&gt;92378 &lt;/span&gt;| Using where; Using index |&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;|  1 | SIMPLE      | adwords  | ref   | PRIMARY       | PRIMARY  | 8       | keywords.keywords.keyword_id | &lt;span style=&quot;color: red;&quot;&gt;10735 &lt;/span&gt;|                          |&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;+----+-------------+----------+-------+---------------+----------+---------+------------------------------+-------+--------------------------+&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;mysql&amp;gt; explain select * from keywords left join adwords on keywords.keyword_id = adwords.keyword_id where keyword like &#39;car%&#39; and &lt;span style=&quot;color: red;&quot;&gt;local_traffic &amp;gt; 10000&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;&quot;&gt;+----+-------------+----------+--------+------------------+---------+---------+-----------------------------+---------+-------------+&lt;br /&gt;
| id | select_type | table&amp;nbsp;&amp;nbsp;&amp;nbsp; | type&amp;nbsp;&amp;nbsp; | possible_keys&amp;nbsp;&amp;nbsp;&amp;nbsp; | key&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | key_len | ref&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | rows&amp;nbsp;&amp;nbsp;&amp;nbsp; | Extra&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
+----+-------------+----------+--------+------------------+---------+---------+-----------------------------+---------+-------------+&lt;br /&gt;
|&amp;nbsp; 1 | SIMPLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | adwords&amp;nbsp; | ALL&amp;nbsp;&amp;nbsp;&amp;nbsp; | PRIMARY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | NULL&amp;nbsp;&amp;nbsp;&amp;nbsp; | NULL&amp;nbsp;&amp;nbsp;&amp;nbsp; | NULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | &lt;span style=&quot;color: red;&quot;&gt;1073581 &lt;/span&gt;| Using where |&lt;br /&gt;
|&amp;nbsp; 1 | SIMPLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | keywords | eq_ref | PRIMARY,ukeyword | PRIMARY | 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | keywords.adwords.keyword_id |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: red;&quot;&gt;1&lt;/span&gt; | Using where |&lt;br /&gt;
+----+-------------+----------+--------+------------------+---------+---------+-----------------------------+---------+-------------+&lt;/span&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;After using local_traffic in the query, seems Mysql doesn&#39;t use the proper index (ukeyword) first as expected. Make a change:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: xx-small;&quot;&gt;mysql&amp;gt; explain select * from keywords &lt;span style=&quot;color: red;&quot;&gt;force index(ukeyword)&lt;/span&gt; left join adwords on keywords.keyword_id = adwords.keyword_id where keyword like &#39;car%&#39; and &lt;span style=&quot;color: red;&quot;&gt;local_traffic &amp;gt; 10000&lt;/span&gt;;&lt;br /&gt;
+----+-------------+----------+-------+---------------+----------+---------+------------------------------+-------+--------------------------+&lt;br /&gt;
| id | select_type | table&amp;nbsp;&amp;nbsp;&amp;nbsp; | type&amp;nbsp; | possible_keys | key&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | key_len | ref&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | rows&amp;nbsp; | Extra&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
+----+-------------+----------+-------+---------------+----------+---------+------------------------------+-------+--------------------------+&lt;br /&gt;
|&amp;nbsp; 1 | SIMPLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | keywords | range | ukeyword&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ukeyword | 152&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | NULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | &lt;span style=&quot;color: red;&quot;&gt;92378 &lt;/span&gt;| Using where; Using index |&lt;br /&gt;
|&amp;nbsp; 1 | SIMPLE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | adwords&amp;nbsp; | ref&amp;nbsp;&amp;nbsp; | PRIMARY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | PRIMARY&amp;nbsp; | 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | keywords.keywords.keyword_id | &lt;span style=&quot;color: red;&quot;&gt;10735 &lt;/span&gt;| Using where&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
+----+-------------+----------+-------+---------------+----------+---------+------------------------------+-------+--------------------------+&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You see, we are using &quot;force index(xx)&quot; to tell Mysql how to use index to execute the query, the performance has a big jump!</content><link rel='replies' type='application/atom+xml' href='http://techmanpoint.blogspot.com/feeds/58028182787291598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/query-optimizer-practice-about-force.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/58028182787291598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/58028182787291598'/><link rel='alternate' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/query-optimizer-practice-about-force.html' title='A query optimizer practice about &quot;force index&quot;'/><author><name>Techman</name><uri>http://www.blogger.com/profile/04481939313438232443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4773754154418185622.post-4275153144373702931</id><published>2011-01-06T03:53:00.000-08:00</published><updated>2011-01-06T19:27:03.454-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mysql"/><title type='text'>Mysql Innodb performance tuning - innodb_flush_log_at_trx_commit</title><content type='html'>The official definition of innodb_flush_log_at_trx_commit is:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;If the value of innodb_flush_log_at_trx_commit is 0, the log buffer is written out to the log file once per second and the flush to disk operation is performed on the log file, but nothing is done at a transaction commit. When the value is 1, the log buffer is written out to the log file at each transaction commit and the flush to disk operation is performed on the log file. When the value is 2, the log buffer is written out to the file at each commit, but the flush to disk operation is not performed on it. However, the flushing on the log file takes place once per second also when the value is 2. Note that the once-per-second flushing is not 100% guaranteed to happen every second, due to process scheduling issues. &lt;/blockquote&gt;&lt;br /&gt;
Typically, most of Mysql experts ask us to set the value to 1, so we won&#39;t lose any data when system is crashed. But after reading more articles, I found the value &quot;0&quot; might be more suitable for me. The bad condition is I will lose 1 second data, but I will get lot of performance improvement. I don&#39;t &lt;span style=&quot;color: red;&quot;&gt;care about the 1 second data losing&lt;/span&gt; if the select and insert actions can be faster than before. If you set the value to 0, please remember to monitor innodb_log_buffer_size. The default value is 1M, you might need to increase the buffer size when more data comes into buffer. &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;mysql&amp;gt; show status like &#39;innodb_log%&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;+---------------------------+-------+&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;| Variable_name | Value |&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;+---------------------------+-------+&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;| Innodb_log_waits | 0 |&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;| Innodb_log_write_requests | 0 |&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;| Innodb_log_writes | 1 |&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;+---------------------------+-------+&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
If the &lt;span style=&quot;color: red;&quot;&gt;Innodb_log_waits is close to Innodb_log_writes&lt;/span&gt;, you should increase innodb_log_buffer_size, for most time, 8M is big enough to handle all normal conditions.</content><link rel='replies' type='application/atom+xml' href='http://techmanpoint.blogspot.com/feeds/4275153144373702931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/mysql-innodb-performance-tuning_06.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/4275153144373702931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/4275153144373702931'/><link rel='alternate' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/mysql-innodb-performance-tuning_06.html' title='Mysql Innodb performance tuning - innodb_flush_log_at_trx_commit'/><author><name>Techman</name><uri>http://www.blogger.com/profile/04481939313438232443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4773754154418185622.post-190505793841790370</id><published>2011-01-06T03:29:00.000-08:00</published><updated>2011-01-06T19:27:03.454-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mysql"/><title type='text'>Mysql Innodb performance tuning - Innodb_buffer_pool_size</title><content type='html'>Before tuning, Innodb_buffer_pool_size is set to default value: 8M&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;mysql&amp;gt; show status like &#39;Innodb_buffer_pool_%&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;
+-----------------------------------+-----------+&lt;br /&gt;
| Variable_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
+-----------------------------------+-----------+&lt;br /&gt;
| Innodb_buffer_pool_pages_data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 511&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_pages_dirty&amp;nbsp;&amp;nbsp;&amp;nbsp; | 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_pages_flushed&amp;nbsp; | 2542331&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_pages_free&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_pages_misc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_pages_total&amp;nbsp;&amp;nbsp;&amp;nbsp; | 512&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_read_ahead_rnd | 4777&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_read_ahead_seq | 7022&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_read_requests&amp;nbsp; | 115968607 |&lt;br /&gt;
| Innodb_buffer_pool_reads&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 5413710&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_wait_free&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_write_requests | 43308713&amp;nbsp; |&lt;br /&gt;
+-----------------------------------+-----------+&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Innodb_buffer_pool_pages_free is the number of unused data pages.&lt;br /&gt;
Innodb_buffer_pool_pages_total is the total number of pages.&lt;br /&gt;
Innodb_buffer_pool_pages_data is the total number of used data pages&lt;br /&gt;
&lt;br /&gt;
For current settings, Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_Total = 0, that indicates Innodb_buffer_pool_size should have a larger value. After set Innodb_buffer_pool_size t0 500M, try again&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;mysql&amp;gt; flush status;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;wait for a whole to let Mysql process some SQL actions&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;mysql&amp;gt; show status like &#39;Innodb_buffer_pool_%&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;+-----------------------------------+--------+&lt;br /&gt;
| Variable_name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Value&amp;nbsp; |&lt;br /&gt;
+-----------------------------------+--------+&lt;br /&gt;
| Innodb_buffer_pool_pages_data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 4269&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_pages_dirty&amp;nbsp;&amp;nbsp;&amp;nbsp; | 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_pages_flushed&amp;nbsp; | 3391&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_pages_free&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 28498&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_pages_misc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_pages_total&amp;nbsp;&amp;nbsp;&amp;nbsp; | 32768&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_read_ahead_rnd | 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_read_ahead_seq | 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_read_requests&amp;nbsp; | 269789 |&lt;br /&gt;
| Innodb_buffer_pool_reads&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 4177&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_wait_free&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br /&gt;
| Innodb_buffer_pool_write_requests | 105595 |&lt;br /&gt;
+-----------------------------------+--------+&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman; font-size: small;&quot;&gt;Now, Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_Total = 86%. It indicates the buffer pool has been over allocated, we should decrease it. After doing more testing, the size should be exactly match your current usage.&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://techmanpoint.blogspot.com/feeds/190505793841790370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/mysql-innodb-performance-tuning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/190505793841790370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/190505793841790370'/><link rel='alternate' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/mysql-innodb-performance-tuning.html' title='Mysql Innodb performance tuning - Innodb_buffer_pool_size'/><author><name>Techman</name><uri>http://www.blogger.com/profile/04481939313438232443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4773754154418185622.post-3222334422106286722</id><published>2011-01-05T04:07:00.001-08:00</published><updated>2011-01-06T03:34:16.411-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP Library"/><title type='text'>Php Json-RPC source code (client side)</title><content type='html'>&lt;pre&gt;&amp;lt;?php

/**
* Author: James Hu
* Email: techman@navime.net
*/
class RpcClient {
  private $server_url;

  private $passcode;

  public function RpcClient($server_url, $passcode = &#39;&#39;) {
    $this-&gt;__construct($server_url, $passcode);
  }

  public function __construct($server_url, $passcode = &#39;&#39;) {
    $this-&gt;server_url = $server_url;
    $this-&gt;set_passcode($passcode);
  }

  public function set_passcode($passcode) {
    $this-&gt;passcode = $passcode;
  }

  public function call($func) {
    $url = $this-&gt;server_url . &quot;?call=$func&quot;;
    
    $args = func_get_args();
    array_shift($args);
    $args = join(&#39;,&#39;, $args);

    $url .= &quot;&amp;params=&quot; . $args;

    if(!empty($this-&gt;passcode)) $url .= &quot;&amp;passcode=&quot; . $this-&gt;passcode;

    $response = file_get_contents($url);
    if(!$response) throw new Exception(&#39;no response from server&#39;);

    $data = @json_decode($response, true);
    if(!$data || !isset($data[&#39;ok&#39;]) || !isset($data[&#39;response&#39;])) 
      throw new Exception(&quot;invalid response from server: $response&quot;);

    if($data[&#39;ok&#39;] || $data[&#39;ok&#39;] == &#39;true&#39;) return $data[&#39;response&#39;];
    else throw new Exception($data[&#39;response&#39;]);
  }
};

?&amp;gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://techmanpoint.blogspot.com/feeds/3222334422106286722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/php-json-rpc-source-code-client-side.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/3222334422106286722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/3222334422106286722'/><link rel='alternate' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/php-json-rpc-source-code-client-side.html' title='Php Json-RPC source code (client side)'/><author><name>Techman</name><uri>http://www.blogger.com/profile/04481939313438232443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4773754154418185622.post-1554370687767947799</id><published>2011-01-05T04:06:00.001-08:00</published><updated>2011-01-06T03:36:34.224-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP Library"/><title type='text'>Php Json-RPC source code (server side)</title><content type='html'>&lt;pre&gt;&amp;lt;?php
/**
* Author: James Hu
*Email: techman@navime.net
*/
 
require_once(dirname(__FILE__) . &#39;/debug.php&#39;);
 
Error::$ExceptionEnabled = true;
 
class RpcServer {
  //
  //
  private $passcode;
 
  //
  //
  private $public_funcs;

  //
  // 
  public function RpcServer() {
    $this-&gt;__construct();
  }
 
  //
  //
  public function __construct() {
    $this-&gt;passcode = md5(&#39;sunday&#39;);
    $this-&gt;public_funcs = array(&#39;rpc_echo&#39;, &#39;rpc_version&#39;);
  }
 
  public function run() {
    try {
      $this-&gt;request_handler();
    } catch (Exception $e) {
      // catch all exceptions
      //
      $this-&gt;output(false, $e-&gt;getMessage());
    }
  }
 
  public function set_passcode($passcode) {
    $this-&gt;passcode = md5($passcode);
  }
 
  public function set_public_func($func) {
    if(!preg_match(&#39;/^rpc_/i&#39;, $func)) $func = &quot;rpc_$func&quot;;
    $this-&gt;public_funcs[] = $func;
  }
 
  private function request_handler() {
    //
    //
    $this-&gt;load_modules();
 
    // more flexible to specify the function name
    //
    $pnames = array(&#39;call&#39;, &#39;do&#39;, &#39;method&#39;);
 
    // iterate the possible function name
    //
    foreach($pnames as $pname) {
      $func = @$_REQUEST[$pname];
      if(!empty($func)) break;
    }
 
    // check if the rpc call exists
    //
    if(empty($func) || !function_exists(&quot;rpc_$func&quot;)) {
      throw new Exception(&quot;Rpc function does not exist&quot;);
    }
 
    $func = &quot;rpc_$func&quot;;
 
    if(!in_array($func, $this-&gt;public_funcs)) {
      $this-&gt;authenticate();
    }
 
    $params = @$_REQUEST[&#39;params&#39;];
 
    // extract raw params information
    //
    if(empty($params)) {
      $params = array();
    } else {
      $params = preg_split(&#39;/,/&#39;, $params);
 
      foreach($params as $k =&gt; $param) {
        $params[$k] = $this-&gt;json_decode($param);
      }
    }
 
    // get function&#39;s parameters
    //
    $funcRef = new ReflectionFunction($func);
    $paramsRef = $funcRef-&gt;getParameters();
 
    for($i = 0; $i &lt; count($paramsRef); ++$i) {
      $paramName = $paramsRef[$i]-&gt;name;
      if(isset($_REQUEST[$paramName])) {
        for($j = 0; $j &lt; $i; ++$j) {
          if(!isset($params[$j])) $params[$j] = false;
        }
        $params[$i] = $this-&gt;json_decode($_REQUEST[$paramName]);
      }
    }
 
    $result = @call_user_func_array($func, $params);
    $this-&gt;output(true, $result);
  }
 
  private function json_decode($v) {
    if(preg_match(&#39;/^\[.*?\]$/i&#39;, $v)) {
      $p = json_decode($v, true);
      if($p) return $p;
    }
 
    return $v;
  }
 
  private function load_modules() {
    if(!file_exists(&#39;./modules&#39;)) return;
 
    $dir = dir(&#39;./modules&#39;);
    while(false !== ($entry = $dir-&gt;read())) {
      if(preg_match(&#39;/.*\.php$/i&#39;, $entry) &amp;&amp; $entry != &#39;index.php&#39;) {
        require_once(&quot;./modules/$entry&quot;);
      }
    }
  }
 
  private function output($error, $result) {
    if(@$_REQUEST[&#39;format&#39;] == &#39;raw&#39;) {
      die($result);
    } else {
      die(json_encode(array(&#39;ok&#39; =&gt; $error, &#39;response&#39; =&gt; $result)));
    }
  }
 
  private function authenticate() {
    $passcode = md5(@$_REQUEST[&#39;passcode&#39;]);
    if($passcode != $this-&gt;passcode) {
      throw new Exception(&#39;access is denied&#39;);
    }
  }
};
 
function rpc_echo() {
  return func_get_args();
}
 
function rpc_version() {
  return &quot;rpc server v1.1&quot;;
}
 
?&amp;gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://techmanpoint.blogspot.com/feeds/1554370687767947799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/php-json-rpc-source-code-server-side.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/1554370687767947799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/1554370687767947799'/><link rel='alternate' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/php-json-rpc-source-code-server-side.html' title='Php Json-RPC source code (server side)'/><author><name>Techman</name><uri>http://www.blogger.com/profile/04481939313438232443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4773754154418185622.post-8601889758584488358</id><published>2011-01-05T03:44:00.001-08:00</published><updated>2011-01-05T03:44:57.409-08:00</updated><title type='text'>procmail memory issue on VPS</title><content type='html'>&lt;div style=&quot;direction: ltr; font-family: Tahoma; color: rgb(0, 0, 0); font-size: 13px;&quot;&gt; &lt;div style=&quot;&quot;&gt;I frequently got &amp;quot;can&#39;t allocate more memory&amp;quot; issue on VPS recently, I even can&#39;t use &amp;quot;ps&amp;quot; and &amp;quot;top&amp;quot; command to check any process has heavy memory usage because this memory issue. &lt;br&gt; &lt;br&gt; I checked the system services when the issue was gone temporarily, there is a strange service: procmail, the memory usage is higher than others. The definition from wikipedia is:&lt;br&gt; &lt;span style=&quot;visibility: visible;&quot; id=&quot;search&quot;&gt;&lt;em&gt;Procmail&lt;/em&gt; is a mail delivery agent (MDA) capable of sorting incoming mail into various directories and filtering out spam messages. &lt;em&gt;Procmail&lt;/em&gt; is widely used&lt;br&gt; &lt;br&gt; After I killed this process, system will launch it again. I don&#39;t know which service is running this command, my solution is to set 0600 mode to /usr/bin/procmail and then kill the running process.&lt;br&gt; #&amp;gt; chmod 600 /usr/bin/procmail&lt;br&gt; &lt;br&gt; The memory problem is gone now. I guess the problem is I have lots of cron services running, these services generated lots of messages to root user&#39;s mailbox. So, procmail has to allocate huge memory to process these messages. &lt;br&gt; &lt;/span&gt;&lt;/div&gt; &lt;/div&gt; </content><link rel='replies' type='application/atom+xml' href='http://techmanpoint.blogspot.com/feeds/8601889758584488358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/procmail-memory-issue-on-vps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/8601889758584488358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/8601889758584488358'/><link rel='alternate' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/procmail-memory-issue-on-vps.html' title='procmail memory issue on VPS'/><author><name>Techman</name><uri>http://www.blogger.com/profile/04481939313438232443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4773754154418185622.post-8840610669185550852</id><published>2011-01-05T03:12:00.000-08:00</published><updated>2011-01-05T03:12:04.640-08:00</updated><title type='text'>sphinx plugin compiling issue for mysql about _mysql_plugin_interface_version_</title><content type='html'>&lt;span style=&quot;font-size: small;&quot;&gt;I know many people are getting following problem when loading sphinx plugin to mysql.&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-size: small;&quot;&gt;mysql&amp;gt; install plugin sphinx soname &#39;sphinx.so&#39;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;ERROR 1127 (HY000): &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Can&#39;t find symbol &#39;_mysql_plugin_interface_version_&#39; in library&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
Looks like there are only two threads discussing this issue from google search and there is no proper solution for it. I happened to read one article:&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Run Configure, you can use the ” –with-plugins=sphinx ” switch if you want sphinx built static into your mysql binary.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
Is this problem caused by using --with-plugins=sphinx option when running ./configure? The answer is yes! Everything works well after removing --with-plugins=sphinx option from ./configure!! &lt;br /&gt;
&lt;br /&gt;
My steps to build sphinx plugin:&lt;br /&gt;
&lt;br /&gt;
#&amp;gt; cp -R SPHINX_SRC_PATH/mysqlse MYSQL_SRC_PATH/storage/sphinx&lt;br /&gt;
&lt;br /&gt;
#&amp;gt; cd MYSQL_SRC_PATH&lt;br /&gt;
&lt;br /&gt;
#&amp;gt; sh BUILD/autorun.sh&lt;br /&gt;
&lt;br /&gt;
#&amp;gt; ./configure (no --with-plugins=sphinx option if you just want to build ha_sphinx.so)&lt;br /&gt;
&lt;br /&gt;
#&amp;gt; cd storage/sphinx&lt;br /&gt;
&lt;br /&gt;
#&amp;gt; make&lt;br /&gt;
&lt;br /&gt;
#&amp;gt; echo &quot;show variables like &#39;%plugin%&#39; | mysql&lt;br /&gt;
Variable_name&amp;nbsp;&amp;nbsp; Value&lt;br /&gt;
plugin_dir&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/lib/mysql/plugin&lt;br /&gt;
&lt;br /&gt;
#&amp;gt; copy ha_sphinx.so /usr/lib/mysql/plugin&lt;br /&gt;
&lt;br /&gt;
#&amp;gt; copy sphinx.so /usr/lib/mysql/plugin&lt;br /&gt;
&lt;br /&gt;
#&amp;gt; mysql&lt;br /&gt;
mysql&amp;gt; install plugin sphinx soname &#39;ha_sphinx.so&#39;;&lt;br /&gt;
mysql&amp;gt; show plugins;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;+------------+----------+----------------+--------------+---------+&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;| Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Status&amp;nbsp;&amp;nbsp; | Type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Library&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | License |&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;+------------+----------+----------------+--------------+---------+&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;...&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;| SPHINX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ACTIVE&amp;nbsp;&amp;nbsp; | STORAGE ENGINE | ha_sphinx.so | GPL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;+------------+----------+----------------+--------------+---------+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
Actually, no need to run the patch like sphinx-xxx-.diff and no need to build all mysql source. The build process is very simple.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://techmanpoint.blogspot.com/feeds/8840610669185550852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/sphinx-plugin-compiling-issue-for-mysql.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/8840610669185550852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4773754154418185622/posts/default/8840610669185550852'/><link rel='alternate' type='text/html' href='http://techmanpoint.blogspot.com/2011/01/sphinx-plugin-compiling-issue-for-mysql.html' title='sphinx plugin compiling issue for mysql about _mysql_plugin_interface_version_'/><author><name>Techman</name><uri>http://www.blogger.com/profile/04481939313438232443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>