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

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 に答える
0

データベース テーブルに正しいインデックスを使用していないことは確かです。インデックスを追加します。

于 2012-10-18T13:36:29.747 に答える