CakePHP 2.2.0多树重新排序性能

时间:2012-10-18 08:29:39

标签: php mysql cakephp optimization tree

我正在使用CakePHP多树行为来存储site_id的类别结构。每个site_id都有自己的树。

目前数据库中只有119条记录,分为8个不同的site_id。但是,当我希望为特定site_id重新排序树时,我运行以下代码:

$this->Category->recursive = -1;
$this->Category->reorder(array('id' => $last_category['Category']['parent_id'], 'field' => 'order', 'order' => 'asc'));

这目前需要10-12秒才能执行,我无法弄清楚我可以做些什么来优化它?

我正在使用的树行为代码:http://pastebin.com/Xhf1LAgQ

2 个答案:

答案 0 :(得分:0)

我很确定你没有为数据库表使用正确的索引。添加索引。

答案 1 :(得分:0)

cakephp的Tree行为基于Modified Preorder Tree Traversal范例。

有人已经开始研究cakphp树行为,但源代码已不再可用。如果您发现它,请分享: https://cakephp.lighthouseapp.com/projects/42648/tickets/10-b_tree-behavior-for-bigger-faster-trees