I spent some time going through the source the other day in order to try to understand the difference between these SHOW STATUS variables in 5.x:
Here's what I discovered that I'm not sure is 100% right, but I suspect is at least on the right track:
Innodb_buffer_pool_read_requests: requests to get something from the buffer pool. This isn't really that great of a mystery. I suspect these are 'direct' read requests, meaning those caused directly from a query of some kind.
Innodb_buffer_pool_reads: Direct read requests for a given page that had to go to disk to fetch it.
Innodb_page_reads: Including Innodb_buffer_pool_page reads, above, plus a few other indirect things like read aheads, merge pages, and recovery page reads.
So, essentially the Innodb_buffer_pool_reads is helpful to discover your buffer pool hit ratio based on direct read requests. Innodb_page_reads includes more stuff that Innodb does behind the scenes (like read-aheads, which should reduce the direct page reads from disk, I believe).
Please, please, please take this as from someone who spent just a bit of time trolling around the source, and not from someone more authoritative and knows what they're talking about. Unless, of course, someone who is authoritative kindly posts a comment saying I'm right. :)
Trackback URL for this post: