Назад | Перейти на главную страницу

Время запроса MySQL для настройки каждый раз разное

Я настраиваю время SQL-запроса для своего медленного запроса, но каждый раз получаю разное время, поэтому я не могу оценить свое оптимизационное решение.

Например, я запускаю запрос select * from abc where abc.status in (x,y,z) and abc.scale>123; три раза, и я получаю время результата 5, 11, 9.

Я отключил кеш запросов. Как получить чистую песочницу для настройки медленного запроса?

Другой альтернативой безупречной и незапятнанной среде является многократное выполнение запроса (например, сотни раз) и выполнение статистического анализа результатов. Ключ состоит в том, чтобы изолировать любые совпадающие переменные (выполнение тестов на одной машине, с одним и тем же кодом каркаса и без каких-либо предубеждений при выполнении других задач (сложно, я знаю). Затем вы можете сделать вероятностные выводы относительно того, запрос лучше, чем какой-либо другой (хотя количественная оценка точного улучшения сопряжена с опасностями).

Или вы можете просто использовать EXPLAIN <query>, который покажет вам план запроса и даст вам очень хорошее представление о том, какой из двух запросов "лучше".

Скорее всего, сервер в фоновом режиме выполняет другие действия. На запросы MySQL очень сильно влияет ввод-вывод, и нарушения в виде других процессов, выполняющих операции ввода-вывода на машине, могут значительно изменить время запроса.

Убедитесь, что вы запускаете это на изолированном сервере, если вам нужны повторяемые тесты.