2012-10-18 37 views
1

我正在使用CakePHP多树行为来存储site_id的类别结构。每个site_id都有它自己的树。CakePHP 2.2.0多树重新排序性能

数据库中目前只有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

我已经在用于搜索的列添加索引 - 仍然没有改善它。这是我尝试的第一个优化。 :( – Mezzair

0

cakephp的树行为基于修改先序树遍历范例。

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

+0

这是[它](https://github.com/CakeDC/utils/blob/develop/Model/Behavior/BtreeBehavior.php)? – Mezzair

+0

是的。对于cakephp 1系列,请检查https:// github的.com/busytoby /折纸 – snowflake