MySQL Single Query Benchmarking Strategies

У меня есть медленный запрос MySQL в моем приложении, которое я должен переписать. Проблема, это только медленно на моем рабочем сервере и только когда это не кэшируется. В первый раз, когда я выполняю его, потребуется 12 секунд, затем каждый раз, когда после этого это будут 500 миллисекунд.

Существует ли простой способ протестировать этот запрос без него поражающий кэш запроса, таким образом, я вижу результаты своего рефакторинга?

Спасибо!

5
задан Pepper 21 May 2010 в 16:15
поделиться

2 ответа

MySQL поддерживает предотвращение кеширования одиночных запросов. Попробуйте

SELECT SQL_NO_CACHE field_a, field_b FROM table;

, или вы можете разбить кеш запросов для текущего сеанса:

SET SESSION query_cache_type = OFF;

См. http://dev.mysql.com/doc/refman/5.1/en/query-cache.html

7
ответ дан 14 December 2019 в 04:31
поделиться

Чтобы добавить к хорошему ответу Йоханнеса, я делаю

СБРОСИТЬ КЭШ ЗАПРОСОВ;

У этого есть небольшое дополнительное преимущество: не требующие внесения каких-либо изменений либо в выполняемые мной операторы, либо в соединение.

Тривиальная вещь, которую нужно сделать, - это каким-то образом изменить оператор, который вы выполняете, например, поместить случайное число в комментарий, потому что запросы находятся в кэше только в том случае, если они идентичны по байтам некоторому предыдущему запросу.

1
ответ дан 14 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: