Yii - CGridview性能问题

时间:2013-06-11 15:50:51

标签: memcached apc yii

Hello开发人员,

我正在使用ajax按钮调用(或正常的重定向或刷新)更新CGridview时遇到严重延迟,我可以告诉使用firebug的控制台,请求本身需要大约399 MS也不错,但是当CGridview更新时它会下山,我正在谈论3941 MS(或4.3秒)只是为了更新视图,这对我来说非常糟糕!

启用所有Yii所需扩展(例如Memcache,PDO MySQL和APC)。我还提到使用缓存方法通过添加:

来解决这个问题
 $dependency = new CDbCacheDependency('SELECT MAX(lu_date) FROM {{issues}}');
 return new CActiveDataProvider(Issue::model()->cache(3600, $dependency, 4), array(
        'criteria' => $criteria,
        'pagination' => array('pageSize' => 20,
        ),
        'sort' => array('defaultOrder' => 'c_date DESC')
    ));

不幸的是没有改进, 请注意,我目前使用延迟加载在CGridview中实现并调用了5个以上的关系。这可能是问题所在吗? 我目前的服务器是LAMP - 基于Linux的

感谢您抽出宝贵时间阅读本文,非常欢迎任何建议或意见:)

1 个答案:

答案 0 :(得分:0)

因为你有5个关系,你正在使用延迟加载进行1 + 5 * 20 = 101个查询。 你应该尝试加载:

Issue::model()->with('relation1', 'relation2', 'deep.relation3')