Я немного работаю и экспериментирую с MySQL, имею базу данных размером в несколько ГБ. И я обнаружил интересную вещь: когда MySQL работает, Windows не кэширует базу данных .ibd файлов, из которой состоит. Например, я запускаю запрос, посмотрите, как Windows активно читает с диска. Я копирую соответствующие файлы в FAR Manager в nul одновременно несколько раз и каждый раз, когда они читаются с диска.
В мониторе ресурсов Windows 7 я вижу, как увеличивается объем кеш-памяти, когда файл читается, и сразу же после этого возвращается обратно. Иногда я видел, как приостановка копирования в одном FAR помогает читать в другой FAR :) Но это не обязательно. Если служба MySQL отключена, кэширование работает нормально - например, если файл .ibd таблицы имеет размер 200 МБ и имеется 1 ГБ свободной ОЗУ или, по крайней мере, кэш-памяти ОЗУ, он кэшируется после одной или двух операций чтения.
Почему это происходит и можно ли это исправить?
Это мой ноутбук для всего и для разработки, поэтому я не хочу выделять много памяти для MySQL (может быть, 200 МБ в порядке, но 500 - это слишком много). Windows 7 x64, Core i5, 8 ГБ ОЗУ, гибридный SSHD (1 ТБ HDD + 8 ГБ флэш-памяти), около 8 ГБ кэш-памяти ReadyBoost, таблицы InnoDB (по умолчанию я не большой специалист по MySQL). ReadyBoost очень помогает, я полагаю. Я вижу, что система много пишет (скажем, 500 КБ / с) в файл ReadyBoost.sfcache и много читает (1-5 МБ / с).