Кэширование запросов sql с помощью php apc

donflash

Вареник клуба
Кэширование запросов sql с помощью php apc

Решил использовать в кач-ве кэширующего механизма PHP APC, то есть сохранять реально большие переменные в хранилище APC... Беда в том, что по результатам работы, получается, что с выключённым кэшированием времени на выполнение запроса надо меньше, чем со включённым кэшированием на основе APC... Соответственно вопрос: почему?

P.s. ещё бы хотелось услышать мнения насчёт кэширования запросов sql...
 

zerkms

TDD infected
Команда форума
почему бы кеширование sql не организовать нативными средствами субд?
 

ran

Новичок
Re: Кэширование запросов sql с помощью php apc

что это за "реально большие переменные" и как они влияют на sql-запросы?
П.С. кешировать лучше не запросы, а результаты их выполнения для редко изменяющихся данных (например, список стран, языков и т.п.), чтобы не выполнять их вообще.
 

donflash

Вареник клуба
Дык, и имеется ввиду, что кэшируются именно результаты запроса...
 

ran

Новичок
Автор оригинала: donflash
с выключённым кэшированием времени на выполнение запроса надо меньше, чем со включённым кэшированием на основе APC
Зачем тогда выполнять запрос, если его результаты закешированы?
 

donflash

Вареник клуба
Наверное, я не правильно сформулировал... Закэшированный запрос не выполняется (что за бред :) ), он просто возвращается в переменную....

Если кэш есть, то я его получаю путём apc_fetch, если кэша нету, то я его сохраняю apc_store.... Если не использовать эту штуку, а всё время делать запрос без кэширования по данной схеме, то это будет быстрей.
 

ran

Новичок
1-е говорите, что кешируются результаты запроса, 2 -е "Закэшированный запрос не выполняется (что за бред ), он просто возвращается в переменную...."
зачем нужен закешированный запрос, нужны результаты его выполнения
1. Если есть результаты в кеше, взять их и ничего не выполнять.
2. Если их нет, выполнить запрос, поместить в кеш.
3. При изменении данных в БД очистить или обновить кеш
При малой нагрузке на базу, вы можете не заметить преимушеств использования кеша.... Я использую для тех данных, которые очень редко изменяются и к которым часто происходит обращение - скорость всего приложения увеличилась в 2-3 раза после добавления кеша.
В любом случае тестировать и решать, нужен ли кеш - только вам. Кеш не означает ускорение приложения в разы, а может быть и не оправдан, если для получения информации из него требуется времени больше, чем получение этих же данных напрямую из БД.
Попробуйте побаловаться настройками apc
 
Сверху