1

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

4

2 回答 2

0

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

于 2012-10-18T13:36:29.747 回答
0

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

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

于 2013-04-22T17:29:11.080 回答