从文档上面看,不应该会大
These global status variables Innodb_buffer_pool_read_ahead and Innodb_buffer_pool_read_ahead_evicted indicate the number of pages read in as part of read ahead and the number of such pages evicted without ever being accessed respectively.实际的服务器显示:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 655415
Server version: 5.1.50-community-log MySQL Community Server (GPL)show global status like '%ahead%';
+---------------------------------------+-----------+
| Variable_name                         | Value     |
+---------------------------------------+-----------+
| Innodb_buffer_pool_read_ahead         | 520841    | 
| Innodb_buffer_pool_read_ahead_evicted | 193493770 | 
+---------------------------------------+-----------+很困惑,下面这个bug显示了Innodb_buffer_pool_read_ahead的计算方式不太正确,但是从下面看在5.1.47中就已经修正了,为什么还会出现问题。
http://bugs.mysql.com/bug.php?id=42885 
Pushed into 5.1.47 (revid:[email protected]) (version source revid:[email protected]) (merge vers: 5.1.46) (pib:16)

解决方案 »

  1.   

    难道是你用的这个build并没有包含相应的fix,楼主可以使用5.5版试一下。以下是原文解释:
     Innodb_buffer_pool_read_aheadThe number of pages read into the InnoDB buffer pool by the read-ahead background thread. Innodb_buffer_pool_read_ahead_evictedThe number of pages read into the InnoDB buffer pool by the read-ahead background thread that were subsequently evicted without having been accessed by queries.