Few weeks ago I wrote about Innodb Caching with main idea you might need
more cache when you think you are because Innodb caches data in
pages, not rows, and so the whole page needs to be in memory even
if you need only one row from it. I have created the simple
benchmark which shows a worse case scenario by picking the random
set of primary key values from sysbench table and reading them
over and over again.
This time I decided to “zoom in” on the time when result drop happens – 2x increase in number of rows per step hides a lot of details, so I’m starting with some number of rows when everything was still in cache for all runs and increasing number of rows being tested 20% per step. I’m trying standard Innodb page size, 4KB page size as 16K page size compressed to 4. The data in this case compresses perfectly (all pages …
[Read more]