Помогите разобраться. Оптимизировал запрос, расставил индексы, все хорошо, запрос выполняется быстро, explain показывает, что все хорошо.
С утра прихожу на работу, запускаю запрос и он выполняется !сорок секунд!
Запрос не очень сложный и не должен выполняться так долго даже в совсем неоптимизированном виде.
После этого запрос снова начинает выполняться мнгновенно. И вот так раз в какое-то время. Как будто, после долгой паузы между запросами новый запрос выполняется долго, а потом какое-то время все очень быстро.
Что это может быть? Дело получается не в запросе, а в чем то другом? Никакой нагрузки в этот момент на сервер не было. Подскажите, в какую сторону копать?
Возможно запрос попадает в кеш, потом за ночь кеш заполняют другие запросы, он снова выполняется как новый (долго), но после выполнения снова результаты попадают в кеш и т.д.
Тестируйте с SQL_NO_CASHE
Дмитрий: Нет, в explain показывает, что индекс выбран правильный. Вообще тормозит не какой-то конкретный запрос. После долгого перерыва (не всегда, иногда по среди дня) тормозит любой запрос. В том числе и этот, в котором я уверен, что он оптимизирован правильно.
WebDev: Оптимизатор может поменять используемый индекс сам, но обычно при изменении количества данных. Всё тормозит? С этого надо начинать ))) Какая нагрузка CRON может стартует