У меня есть несколько отчетов, которые редко выполняются, и мне нужно, чтобы они выполнялись, не полагаясь на то, что они кэшируются где-либо в системе.При тестировании различных изменений схемы и sproc я обычно вижу, что первый запуск будет очень медленным, а последующие - быстрым, поэтому я знаю, что происходит некоторое кеширование, которое затрудняет тестирование изменений.Перезапуск mysqld или выполнение нескольких других больших запросов - единственные надежные способы его воспроизведения.Мне интересно, есть ли лучший способ.
MySQL Query Cache выключен.
Наблюдая за диском, я не вижу никаких операций чтения, кроме как при первом запуске.Я не очень хорошо знаком с дисковым кешем, но я ожидаю, что если там будет происходить кеширование, я все равно буду видеть чтение с диска, они будут очень быстрыми.
MONyog дает мне то, что я считаюокончательное доказательство, которое является коэффициентом попадания в кэш InnoDB.Наблюдая за этим, я вижу, что когда запрос быстрый, он попадает в буфер InnoDB, когда он медленный, он попадает на диск.
В реальной системе я с радостью позволю InnoDB сделать это, но для целей разработки и тестирования яинтересует наихудшие сценарии.
Я использую MySQL 5.5 на Windows Server 2008R2