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

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

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

Мои взгляды состоят в том, что это позволило бы пользовательским опциям (например, количество записей на дисплей) быть примененными к запросу.

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

Спасибо.

8
задан Dan 29 January 2010 в 09:14
поделиться

4 ответа

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

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

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

2
ответ дан 6 December 2019 в 00:07
поделиться

Создание индекса после загрузки данных является рекомендуемой практикой для массовых нагрузок. Необходимо быть уверенным в качестве входящих данных, особенно если используются уникальные индексы. Отсутствие индекса означает, что проверка данных, которая происходит из-за наличия уникальных индексов, не произойдет. Другая проблема для вас, чтобы рассмотреть, есть ли у вас операция с одноразовой нагрузкой или это будет обычный роман? Если это обычный роман, то можно сбросить индексы перед каждой загрузкой данных и воссоздать их после успешной загрузки.

-121--4648446-

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

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

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

-121--3732575-

Возможно, вам потребуется просмотреть Zend Cache
http://framework.zend.com/manual/de/zend.cache.html

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

0
ответ дан 6 December 2019 в 00:07
поделиться

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

  • вы можете реализовать условный GET (HTTP-заголовки ETag и Last-Modified)
  • do кэширование данных с помощью упомянутых решений ( Cache_Lite , Zend_Cache , APC ) с несколькими бэкэндами (файл, memcached , общая память)
  • вы можете кэшировать файлы шаблонов, как вы сказали ( Smarty )
1
ответ дан 6 December 2019 в 00:07
поделиться

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

1
ответ дан 6 December 2019 в 00:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: