node_id、user_id、rht、lft、値の列を持つ1つのMySQLテーブルに、複数のMPTT(Modified Preorder Travelsal Trees)を保存します。単一ツリーは、Webサイト上の1人のユーザーに割り当てられます。私が使用するユーザーのために指定されたノードからツリーを選択するにはネストされたクエリを使用してMySQLのSELECTパフォーマンスを向上させる
:
SELECT * FROM categories
WHERE user_id = 123
AND lft > node_lft
AND rht < node_rht;
私はこの機能のためにネストされたクエリを使用して考える:
で動作しているときに高速であるクエリのSELECT t.* FROM
(SELECT * FROM categories WHERE user_id = 123) t
WHERE lft > node_lft
AND rht < node_rht;
大規模なデータ(例えば10000人のユーザー、誰もがランダムな深さと要素の数を持つ単一のツリーを持っています)、なぜですか?