繁体   English   中英

查询缓存在Yii框架中不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM