I am working and experimenting with MySQL a bit, have database several GBs in size. And I have found interesting thing: when MySQL works, Windows doesn't cache .ibd files database consists of. For example, I run a query, see how Windows reads from drive actively. I copy the corresponding files in FAR Manager to nul at the same time several times and each time they are read from drive.
I can see in Windows 7's Resource Monitor how cache memory is raising while file is read and is dropping back right after it's done. Sometimes I saw how pausing of copying in one FAR helps reading to other FAR :) But this is not obligatory. If MySQL service is turned off, caching works normally - e.g., if a table's .ibd file is 200 MB and there is 1 GB of free RAM or at least cache RAM, it is cached after one or two reads.
Why does this happen and is it possible to fix this?
This is my notebook for everything and development, so I don't want to allocate much memory to MySQL (maybe 200 MB is ok, but 500 is too much). Windows 7 x64, Core i5, 8 GB RAM, hybrid SSHD (1 TB HDD + 8 GB flash), about 8 GB ReadyBoost cache, InnoDB tables (default, I'm not a big MySQL expert). ReadyBoost helps a lot, I suppose. I see system writes a lot (say 500 KB/s) to ReadyBoost.sfcache file and reads a lot (1-5 MB/s).
SELECT @@INNODB_BUFFER_POOL_SIZE;
. This is the optimum place for caching -- not the OS -- and is one of the few tunable parameters that should always be customized. What's your setting?