Yii 1.1 查询量过大,如何优化?
Yii 1.1 excessive amount of queries, how to optimise?
我在使用 Yii 时遇到了一个大问题,因为渲染简单的东西需要超过 10 秒。
例如:
控制器:
public function actionFailed($id=null) {
if(!is_null($id)) $this->_viewcity=$id;
$failed = Delivery::model()->findAll('failed IS NOT NULL AND city_id = '.$this->_viewcity.' ORDER BY id DESC');
$cities = City::model()->findAll('active > 0');
$this->render('failed',array(
'failed'=>$failed,
'cities'=>$cities,
'city'=>City::model()->findByPk($this->_viewcity),
));
}
仅在视图中
foreach ($failed as $d)
已使用。
查询日志:http://jsfiddle.net/kwqabmc0/
我该如何优化它?我的 SQL 服务器 ping 时间为 23 毫秒,之前提到的页面加载时间很长。
您正在视图中使用 Delivery.items
和 Delivery.user
的延迟加载。
尝试
$failed = Delivery::model()->with('items', 'user')->findAll('failed IS NOT NULL AND city_id = '.$this->_viewcity.' ORDER BY id DESC');
或者不在视图中使用这些关系。
我在使用 Yii 时遇到了一个大问题,因为渲染简单的东西需要超过 10 秒。
例如:
控制器:
public function actionFailed($id=null) {
if(!is_null($id)) $this->_viewcity=$id;
$failed = Delivery::model()->findAll('failed IS NOT NULL AND city_id = '.$this->_viewcity.' ORDER BY id DESC');
$cities = City::model()->findAll('active > 0');
$this->render('failed',array(
'failed'=>$failed,
'cities'=>$cities,
'city'=>City::model()->findByPk($this->_viewcity),
));
}
仅在视图中
foreach ($failed as $d)
已使用。
查询日志:http://jsfiddle.net/kwqabmc0/
我该如何优化它?我的 SQL 服务器 ping 时间为 23 毫秒,之前提到的页面加载时间很长。
您正在视图中使用 Delivery.items
和 Delivery.user
的延迟加载。
尝试
$failed = Delivery::model()->with('items', 'user')->findAll('failed IS NOT NULL AND city_id = '.$this->_viewcity.' ORDER BY id DESC');
或者不在视图中使用这些关系。