2011-03-09 3 views
0

私は、MPTTメソッドを使って階層データを格納するMySQLテーブルを持っています。テーブルには、各行に短い文字列識別子(slug)を格納する列もあります。パス単位でMPTTスタイルテーブルを照会する最も効率的な方法は何ですか?

これらのスラッグで構成されるパスが指定されている場合、正しいローを見つけるためにテーブルを照会できるようにしたいと思います。私。与えられたパスfoo/bar私はできるだけ効率的な方法で表現する行を探したいと思います。

これを単一のSQLクエリで実行できますか?正しい結果を得るためにいくつかのクエリを組み合わせる最も効率的な方法は何でしょうか?私はアプリでPHPを使用していますが、これは純粋にSQLクエリで行うことができない場合に関連している可能性があります。

答えて

0

読み込み速度が速く、書き込み速度が遅くならないようにするには、パスを別の列にキャッシュします。変更されたノード(およびその子ノード)を親のキャッシュされたパスを使用して更新するだけで、パスキャッシュをより効率的に再生成することができます。

関連する問題