我正在使用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
答案 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