0

MPTTメソッドを使用して階層データを格納するMySQLテーブルがあります。このテーブルには、各行の短い文字列識別子(スラッグ)を格納する列もあります。

これらのスラッグで構成されるパスが与えられたときに、テーブルをクエリして正しい行を見つけられるようにしたいと思います。foo/barつまり、可能な限り最も効率的な方法でそれが表す行を見つけたいパスを指定します。

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

4

1 に答える 1

0

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

于 2011-10-18T06:50:59.280 に答える