Я пытаюсь настроить script, который будет проверять производительность запросов на сервере mysql разработки. Вот более подробная информация:
- У меня есть root-доступ.
- Я единственный пользователь, обращающийся к серверу
- В наибольшей степени заинтересованы в производительности InnoDB
- Запросы, которые я оптимизирую, - это в основном поисковые запросы (
SELECT ... LIKE '%xy%'
)
Я хочу создать надежную среду тестирования для измерения скорости одного запроса, не зависящего от других переменных.
До сих пор я использовал SQL_NO_CACHE, но иногда результаты таких тестов также показывают поведение кэширования - выполнение намного дольше для выполнения на первом и меньше времени на последующие прогоны.
Если кто-то может подробно объяснить это поведение, я могу использовать SQL_NO_CACHE
; Я полагаю, что это может быть связано с кэшем файловой системы и/или кэшированием индексов, используемых для выполнения запроса, как объясняет . Мне непонятно, когда Buffer Pool и Key Buffer становятся недействительными или как они могут мешать тестированию.
Итак, за исключением перезапуска сервера mysql, как бы вы рекомендовали настроить среду, которая была бы надежной при определении того, будет ли один запрос работать лучше, чем другой?