2014-03-12 53 views
3

我有一個包含超過27,000條記錄的表。我想在下拉列表中獲取所有數據。爲此,我已經實現了緩存,但它似乎不工作,因爲它變得非常緩慢並顯示空白頁面(有時瀏覽器正在被吊死)。查詢緩存在Yii框架中不起作用

以下是我的代碼(我用yiiboilerplate):

'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' 
    )); 

在組件陣列後端/配置/ main.php的配置我認爲27000記錄不是大數據,但它仍然變得非常慢,我想在我的整個應用程序中實現緩存。

我的配置是否正確?我哪裏出錯了?

感謝

+1

這是相當一些瀏覽器的數據(想想移動)。即使你最終在一個可接受的時間內填充,你認爲誰會滾動並在長列表中選擇一些記錄?我認爲'