Я хочу найти общий балл пользователя loggedin &, чтобы его кешировать. Мой код:Query caching yii framework
$dependency = new CDbCacheDependency('SELECT MAX(id) FROM tbl_points_log where user_id='.Yii::app()->user->id);
$sql='SELECT SUM(point) as user_point FROM tbl_points_log left join tbl_action on tbl_action.id = tbl_points_log.action_type_id where user_id='.Yii::app()->user->id;
$user_point = Yii::app()->db->cache(1000, $dependency)->createCommand($sql)->queryAll();
ли выше код правильно? Должен ли я внести некоторые изменения в файл конфигурации, чтобы сделать кеширование запросов? Я просто добавил
'cache' => array(
'class' => 'CDbCache'
),
под компонентами
var_dump($dependency->getHasChanged());
всегда истинно, даже если я не сделал ни одного изменения в базу данных, так почему?
P.S Не беспокойтесь о инструкции SQL. Работает!
Это нормально. Он должен работать без проблем :) – sucotronic
Как я могу быть уверенным, работает ли кеширование? – iThink
Включите отладку и посмотрите, вызываются ли запросы или нет. Если он кэширован, они не будут вызваны. – Sarke