使用ORDER BY的MYSQL查询在CakePHP中运行速度非常慢

时间:2012-09-09 17:25:22

标签: mysql cakephp cakephp-1.3 cakephp-2.0

当我在Cakephp 2.0中使用paginate函数时,使用$ options ['order'] = array('Model.name'=>'DESC');设置查询需要7000ms而不是没有设置顺序的5ms,限制只设置为10条记录。我使用WAMP服务器。

知道为什么这个查询花了这么长时间?唯一的区别是添加订单规则。 “订购者”字段已编入索引。

解决了它:

问题是我没有将所有相关模型的id字段(model_id)设置为索引,在这样做之后,查询按预期运行。

1 个答案:

答案 0 :(得分:0)

您可以尝试将order放入模型中。

var $order = "field";
var $order = "Model.field";
var $order = "Model.field asc";
var $order = "Model.field ASC";
var $order = "Model.field DESC";
var $order = array("Model.field" => "asc", "Model.field2" => "DESC");
在您的查询中

Delete-orderBy并将其中一个选项放入您的模型中并告诉我们它是否更快。

Source