Минимизируйте взаимодействия с базой данных с помощью кэширования - PullRequest
0 голосов
/ 27 сентября 2011

Я смотрел на это:

http://dev.mysql.com/doc/refman/5.1/en/query-cache.html

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

Я имею в виду, что вы отправляете свои запросы на этот промежуточный уровень, он просматривает ваши запросы, решает, нужно ли ему снова подключаться к БД или нет.1008 *

Кто-нибудь сделал что-нибудь подобное для PHP?Как вы думаете, это хорошая идея?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2011

Я написал пост в блоге, в котором много подробностей по этой теме, на http://www.joeyrivera.com/2009/caching-using-phpzend_cache-and-mysql/. В нем рассказывается о том, почему вы должны кэшировать и как реализовать кэширование с помощью Zend cache. Общение с БД обычно происходит медленно, поэтому всегда следует кэшировать, когда это возможно. Кэширование в оперативную память даст вам более высокие результаты производительности, поскольку оперативная память работает быстрее, чем файловая система, использующая что-то вроде memcache, но если у вас ее нет, просто используйте вместо этого кэширование файловой системы.

0 голосов
/ 27 сентября 2011

Для любого кэширования важно, чтобы фактическое кэширование и аннулирование выполнялись одним и тем же приложением (например, sql-сервером).
Хотя, вероятно, нетрудно написать некоторый кэш запросов на стороне клиента, это делаетАбсолютно не имеет смысла в большинстве случаев, так как клиентский кеш не будет уведомлен (sql-сервером), когда кэшированные данные устаревают.Но на самом деле кеш запросов - это тот слой, который вы предлагаете.
Поскольку кеш запросов mysql ничего не знает о вашей логике приложения, он должен аннулировать кеш по другим критериям (например, изменилась таблица).Это может привести к снижению производительности при использовании в качестве единственного кэша (особенно в быстро меняющихся таблицах).
Поэтому вам следует использовать на своем клиенте какой-то сложный механизм кэширования в отношении логики приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...