Вопрос

Есть ли простой способ кэширования MySQL queries в PHP или, в противном случае, есть ли небольшой набор классов, который кто-то написал и сделал доступным, который это сделает?Я могу кэшировать целую страницу, но это не будет работать, так как некоторые данные изменяются, а некоторые нет, я хочу кэшировать ту часть, которая этого не делает.

Это было полезно?

Решение

Это отличный обзор того, как кэшировать запросы в MySQL:

Другие советы

Вы можете использовать Zend Cache для кэширования результатов ваших запросов. среди прочего.

Я думаю, что размер кэша запросов по умолчанию равен 0, что отключено. Отредактируйте ваш файл my.cnf, чтобы он имел как минимум несколько мегабайт. Не нужно никаких изменений PHP:)

Это может быть излишним из-за того, что вы пытаетесь сделать, но взгляните на eAccelerator или memcache . Если у вас есть запросы, которые будут регулярно меняться, и запросы, которые не будут изменяться, возможно, вы не захотите, чтобы все ваши запросы к базе данных кэшировались в течение одинакового промежутка времени с помощью mysql.

Механизмы кэширования, подобные вышеперечисленным, позволяют вам на основе запроса к запросу определять, как долго должны кэшироваться данные. Допустим, у вас есть данные в заголовке, которые будут меняться нечасто, вы можете проверить, находится ли он в данный момент в кэше - если да, вернуть его, в противном случае выполнить запрос и поместить его в кэш с временем жизни N, так что для следующего N секунд каждая загрузка страницы будет извлекать данные из кэша, не приближаясь к MySQL. После этого вы можете извлекать другие данные «в прямом эфире». из БД по мере необходимости, минуя кеш.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top