Задать вопрос
Silversy
@Silversy

MySQL кеширует запросы даже при выключенном кешировании?

Есть монстроидальный запрос. В первый раз он отрабатывает довольно долго (порядка 20-30 секунд). В последующие разы время его выполнения значительно сокращается (до 1-2 секунд).
Логично предположить, что это кеш, но даже при использовании MYSQL_NO_CACHE и при установке query_cache_type в OFF все повторяется.

Что это может быть и как от этого избавиться?

(Отключить кеш необходимо для того, чтобы видеть результаты оптимизации)
  • Вопрос задан
  • 4417 просмотров
Подписаться 3 Оценить Комментировать
Ответ пользователя egorinsk К ответам на вопрос (5)
@egorinsk
Если бы результат брался из кеша, он бы не выполнялся 1-2 секнуды, а 1-100 мс. Скорее всего, просто куски файлов с диска попадают в кеш ОС и при повторном запросе берутся из памяти.

Если вы работаете под Линукс, кеш ОС (для чистоты эксперимента) можно сбросить записью единички куда-то в /proc (гуглите), внутренние буфера mysql сбрасываются перезапуском демона.

Т.е. делаете service mysql stop, сбрасываете кеш ОС, service mysql start и выполняете запрос.
Ответ написан
Комментировать