[英]Query caching not working in Yii framework
我有一张包含27,000多条记录的表格。 我想获取下拉列表中的所有数据。 为此,我已经实现了缓存,但似乎没有工作,因为它变得非常慢并显示空白页面(某些时候浏览器正在被绞死)。
以下是我的代码(我正在使用yiiboilerplate):
在组件数组中配置backend / config / main.php:
'cache' => array(
//'class' => 'system.caching.CMemCache',
'class' => 'system.caching.CDbCache',
'connectionID' => 'db',
),
在查看页面中:
$dependency = new CDbCacheDependency('SELECT MAX(bank_id) FROM bank');
$bank = CHtml::listData(Bank::model()->cache(1000, $dependency)->findAll('is_active=1', array('order' => 'name')), 'bank_id', 'concatened');
echo $form->dropDownListRow($model, 'bank_id', $bank, array(
'empty' => 'Select'
));
我认为27000条记录不是大数据,但仍然非常慢,我想在整个应用程序中实现缓存。
我的配置是否正确? 我哪里错了?
谢谢
我认为findAll
的参数不正确。
它应该是:
Bank::model()
->cache(1000, $dependency)
->findAll([
'select' => 'bank_id',
'order' => 'name ASC', // if it is in ascending order
'condition' => 'is_active = 1'
]);
我不知道是什么concatened
所以我就忽略了它。 但您可以随时使用范围来满足您的条件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.