Я связываю базу данных MySQL с объектами данных PHP (PDO) и выполняю обширный SQL-запрос. Обычно это занимает около 1500 мс; Я все еще должен оптимизировать это. Когда я дважды запускаю PHP-скрипт с небольшим интервалом, запрос занимает около 90 мс. Запрос в обоих случаях одинаков. Когда я запускаю сценарий с тем же запросом, через некоторое время это снова занимает 1500 мс.
Это почему? Кеширует ли база данных автоматически? Некоторое время база данных сохраняет кеш, а затем автоматически удаляет его?
Я предполагаю, что результаты не могут быть кэшированы PHP, потому что это происходит в двух разных потоках. Я не думаю, что PHP кэширует результаты, потому что он не может знать, изменилась ли база данных.
У меня есть скрипт, работающий каждую минуту, чтобы вставить новые строки в базу данных. Это также может быть причиной того, что через некоторое время снова потребуется 1500 мс; кэш был бы удален, потому что соответствующие таблицы больше не совпадают.