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記錄不是大數據,但它仍然變得非常慢,我想在我的整個應用程序中實現緩存。
我的配置是否正確?我哪裏出錯了?
感謝
這是相當一些瀏覽器的數據(想想移動)。即使你最終在一個可接受的時間內填充,你認爲誰會滾動並在長列表中選擇一些記錄?我認爲'
一次查詢27,000條記錄非常重要。想一想你正在初始化一個數組並用27,000個條目填充它。有時它會導致服務器超時。做一個分頁機制你的下拉條目將減輕你的負載。 – Jhn
@ Pentium10是對的。 [這個html頁面](http://codepad.org/qrSBcYUy)只包含27000個相同的選項'Pick Me'的選擇是64KB。我曾經有過與10,000條記錄相似的選擇,導致瀏覽器崩潰。 – topher