Кэширование данных в PHP


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

Мне просто интересно, было бы лучше писать и читать HTML непосредственно в файл или, возможно, создать что-то вроде файла YAML с разделителем для разделения записей, а затем обернуть его в HTML с помощью функции?

Я думаю, что это позволит применять пользовательские параметры (например, количество отображаемых записей) к просьба.

Любые советы/предложения приветствуются.

Спасибо.

Author: Dan, 2010-01-29

4 answers

Используйте любой из них для кэширования бэкэндов:

И использовать Zend_Cache для единого интерфейса к ним

Следует ли использовать полное или частичное кэширование страницы, зависит от ваших конкретных вариантов использования. Как правило, ваше приложение будет иметь смесь того и другого.

 2
Author: Gordon, 2010-01-29 09:28:50

Хотя я никогда лично не использовал его раньше, для кэширования есть пакет PEAR . Рассмотрите это среди других вариантов, таких как Zend_Cache.

 1
Author: Dominic Barnes, 2010-01-29 09:22:19

Вы можете реализовать кэширование в нескольких местах вашего приложения:

  • вы можете реализовать условный GET (ETag и последние измененные заголовки HTTP)
  • выполните кэширование данных с помощью упомянутых решений (Cache_Lite, Zend_Cache -кэш, APC) с несколькими бэкэндами (файл, memcached, общая память)
  • вы можете кэшировать файлы шаблонов, как вы сказали ( Умный)
 1
Author: KARASZI István, 2010-01-29 09:28:00

Возможно, вы захотите взглянуть на кэш Zend
http://framework.zend.com/manual/de/zend.cache.html

Обычно я где-то храню результат SQL-запросов (в зависимости от того, что вы ищете, т.Е. Иногда кэширую его в $_SESSION ok (данные, связанные с пользователем), иногда нет (большие наборы результатов для запросов, не зависящих от пользователя), а затем мой класс просто проверяет, существует ли кэш, и продолжает соответственно.

 0
Author: Morfildur, 2010-01-29 09:18:17