Как заставить MySQL кешировать запрос в течение определенного периода времени?
Есть ли способ заставить MySQL кешировать конкретный запрос, скажем, в течение 5 минут, поэтому выполнение этого запроса всегда будет возвращать один и тот же результат, даже если базовый БД изменяется?
Я управляю сайтом знакомств, и у меня есть страница, которая показывает "новейшие совпадения", и она слишком сильно бьет по БД.
заранее спасибо.
1 ответ
Кэширование в MySQL не является хорошим решением этой проблемы.
MySQL автоматически кэширует запрос, пока таблица не будет обновлена.
Для вашей проблемы вам нужно использовать кеш перед базой данных. Затем вы можете сначала проверить кеш, и если того, что вы ищете, нет в кеше, попробуйте в базу данных и добавьте его в кеш.
Memcached - хорошее решение для этого, особенно если у вас более 1 веб-сервера.
APC - еще одно хорошее решение, которое также может кэшировать ваш байт-код PHP, но это локальный кеш только на одной машине.