Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кеширование запросов к БД
 
 автор: andrew123   (10.06.2011 в 12:56)   письмо автору
 
 

Всем привет,
я пытаюсь разобратся, как грамотно организовать кеширование запросов к БД (юзаю ZF).
Вот например закешировать статические результаты/страници несложно. Однако, кроме обычной выборки есть сортировка данных, фильтры, постраничная навигация и другие вещи, которые влияют на конкретный результат выдачи. С этого, можно ли закешировать такие запросы (или как-то сохранить) чтоб не дергать базу для получения той же коллекции элементов, только в отсортированном виде? Пока встречал только то, что кешируют статические страници, а все динамические (сортировка, фильтры по столбцам) не кешируют, а дергаю базу постоянно.
Буду рад услышать идеи по этому вопросу.

  Ответить  
 
 автор: cheops   (10.06.2011 в 13:16)   письмо автору
 
   для: andrew123   (10.06.2011 в 12:56)
 

>юзаю ZF
Что имеется в виду под ZF? Это название базы данных или имеется в виду что-то другое?

  Ответить  
 
 автор: andrew123   (10.06.2011 в 13:19)   письмо автору
 
   для: cheops   (10.06.2011 в 13:16)
 

Zend Framework
но в принципе абсолютно не важно, какой фреймворк юзать. Суть вопроса для всех одинакова.

  Ответить  
 
 автор: cheops   (10.06.2011 в 13:31)   письмо автору
 
   для: andrew123   (10.06.2011 в 13:19)
 

Дело в том, что кэшировать запросы на уровне приложения довольно трудно - они протекают в базе данных и приложение может вмешиваться в её работу только при помощи запросов. Как правило, такие вещи кэшируются на стороне базы данных: есть индексы, которые ускоряют запросы за счет поиска в индексе, а не таблицы, есть кэш индексов, когда они хранятся в оперативной памяти, а не на диске, есть кэш запросов. В общем огромное количество инструментов. Да, это не значит, что не нужно ничего кэшировать со стороны приложения, но кэшировать именно результаты запросов мне кажется плохой идеей - это дублирование работы MySQL, которая с этим справляется много лучше.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования