|
|
|
| Всем привет,
я пытаюсь разобратся, как грамотно организовать кеширование запросов к БД (юзаю ZF).
Вот например закешировать статические результаты/страници несложно. Однако, кроме обычной выборки есть сортировка данных, фильтры, постраничная навигация и другие вещи, которые влияют на конкретный результат выдачи. С этого, можно ли закешировать такие запросы (или как-то сохранить) чтоб не дергать базу для получения той же коллекции элементов, только в отсортированном виде? Пока встречал только то, что кешируют статические страници, а все динамические (сортировка, фильтры по столбцам) не кешируют, а дергаю базу постоянно.
Буду рад услышать идеи по этому вопросу. | |
|
|
|
|
|
|
|
для: andrew123
(10.06.2011 в 12:56)
| | >юзаю ZF
Что имеется в виду под ZF? Это название базы данных или имеется в виду что-то другое? | |
|
|
|
|
|
|
|
для: cheops
(10.06.2011 в 13:16)
| | Zend Framework
но в принципе абсолютно не важно, какой фреймворк юзать. Суть вопроса для всех одинакова. | |
|
|
|
|
|
|
|
для: andrew123
(10.06.2011 в 13:19)
| | Дело в том, что кэшировать запросы на уровне приложения довольно трудно - они протекают в базе данных и приложение может вмешиваться в её работу только при помощи запросов. Как правило, такие вещи кэшируются на стороне базы данных: есть индексы, которые ускоряют запросы за счет поиска в индексе, а не таблицы, есть кэш индексов, когда они хранятся в оперативной памяти, а не на диске, есть кэш запросов. В общем огромное количество инструментов. Да, это не значит, что не нужно ничего кэшировать со стороны приложения, но кэшировать именно результаты запросов мне кажется плохой идеей - это дублирование работы MySQL, которая с этим справляется много лучше. | |
|
|
|