выгода от CDbCacheDependency
выгода от CDbCacheDependency
в примерах с кешированием часто используют CDbCacheDependency для установки зависимости
но это означает выполнение запроса к базе для проверки зависимости
получается если ломанется на сайт тысяча человек, то все равно будет тысяча запросов к базе, причем при каждом обращении к странице будет запрос через CDbCacheDependency
насколько эффективно использование CDbCacheDependency?
но это означает выполнение запроса к базе для проверки зависимости
получается если ломанется на сайт тысяча человек, то все равно будет тысяча запросов к базе, причем при каждом обращении к странице будет запрос через CDbCacheDependency
насколько эффективно использование CDbCacheDependency?
Re: выгода от CDbCacheDependency
если в CDbCacheDependency делать запрос намного проще (проще для СУБД), чем запрос реальных данных - то почему бы и нет?
Re: выгода от CDbCacheDependency
Результаты запросов mysql тоже кеширует. Какой-нибудь запрос для проверки актуальности кеша вроде
в случае, если на id проставлен индекс, будет в 100 раз легче чем тяжелый запрос для выборки 50 последних сообщений вместе с пользователями. В этом случае нагрузка снижается в 100 раз, что очень классно.
Код: Выделить всё
SELECT MAX(id) FROM messages
Yii Jabber Conference: yii@conference.jabber.ru
Re: выгода от CDbCacheDependency
если будет кешироваться запросR3D3 писал(а):Результаты запросов mysql тоже кеширует. Какой-нибудь запрос для проверки актуальности кеша вродев случае, если на id проставлен индекс, будет в 100 раз легче чем тяжелый запрос для выборки 50 последних сообщений вместе с пользователями. В этом случае нагрузка снижается в 100 раз, что очень классно.Код: Выделить всё
SELECT MAX(id) FROM messages
Код: Выделить всё
SELECT MAX(id) FROM messages
Re: выгода от CDbCacheDependency
mysql сам по умному кеширует, как только в таблицу messages будет вставлена новая строка или удалена существующая, кеш сбросится. Для разработчика это незаметно.kukuruku писал(а):если будет кешироваться запросR3D3 писал(а):Результаты запросов mysql тоже кеширует. Какой-нибудь запрос для проверки актуальности кеша вродев случае, если на id проставлен индекс, будет в 100 раз легче чем тяжелый запрос для выборки 50 последних сообщений вместе с пользователями. В этом случае нагрузка снижается в 100 раз, что очень классно.Код: Выделить всё
SELECT MAX(id) FROM messages
то какой тогда от запроса толк? всегда будет возвращаться одинаковое значениеКод: Выделить всё
SELECT MAX(id) FROM messages
Yii Jabber Conference: yii@conference.jabber.ru
Re: выгода от CDbCacheDependency
но ведь с таким же успехом mysql может закешировать и более крупную выборку, которую разработчик кеширует средствами yii
Re: выгода от CDbCacheDependency
Если проект под высокой нагрузкой, то mysql кеш большой выборки может очень часто сбрасываться и нагрузка на БД будет все равно на несколько порядков больше чем при легковесном запросе SELECT MAX(id).
А вообще, лучшей демонстрацией будет собственный опыт. Сделай таблицы messages и users, забей в них несколько сотен тысяч записей, и протестируй нагрузоустойчивость при наличии CDbCacheDependency и без него.
А вообще, лучшей демонстрацией будет собственный опыт. Сделай таблицы messages и users, забей в них несколько сотен тысяч записей, и протестируй нагрузоустойчивость при наличии CDbCacheDependency и без него.
Yii Jabber Conference: yii@conference.jabber.ru
Re: выгода от CDbCacheDependency
если использовать такой запрос для зависимости
то last_update нужно делать индексом?
Код: Выделить всё
select max(last_update) from table
Re: выгода от CDbCacheDependency
Да, нужно делать индексом.kukuruku писал(а):если использовать такой запрос для зависимостито last_update нужно делать индексом?Код: Выделить всё
select max(last_update) from table
Yii Jabber Conference: yii@conference.jabber.ru