IT用語集 › データベース › マテリアライズドパス

マテリアライズドパス

データベース Svenska → 更新: 2026-10-22

リレーショナルデータベースで木構造を保存する方法の1つ。各ノードがルートからの完全なパスを「/1/4/9/」のような文字列で持ち、サブツリーや祖先の検索を単純な文字列一致にする。

仕組みは、各行に区切り文字付きのパスを符号化したpath列を持たせるというもの。メリットは、「ノード4の下の全サブツリーを取得」がWHERE path LIKE '/1/4/%'になり、通常のインデックスで速く引けること。祖先の取得は文字列を分割すればよい。読み取りは再帰クエリよりはるかに単純になる。代償は、サブツリーを移動するとき影響する全パスを更新する必要があることと、パス文字列に長さ制限があること。PostgreSQLには、まさにこの用途のためのltree型があり、専用の演算子とGiSTインデックスを備える。SQLで階層をモデル化する方法は他に隣接リスト、入れ子集合、閉包テーブルがあり、サブツリーの読み取りが多く移動が少ない場合に向いている。

← 用語集に戻る