GiST (Generalized Search Tree) インデックスは、軌跡データに対する空間クエリを高速化します。軌跡データを格納するカラムに GiST インデックスを作成できます。
構文
CREATE INDEX [index_name] ON table_name USING GIST(traj_col [operator_family]);| パラメーター | 必須 | 説明 |
|---|---|---|
index_name | いいえ | インデックスの名前。 |
table_name | はい | 軌跡カラムを含むテーブルの名前。 |
traj_col | はい | インデックスを作成する軌跡カラムの名前。 |
operator_family | いいえ | インデックスがサポートする軸とクエリタイプを決定するオペレーターファミリー。デフォルトは trajgist_ops_multi です。これをカスタマイズするには、ganos.trajectory.index_split_config パラメーターを使用します。 |
説明
GiST インデックスは、次の関数を使用するクエリを高速化します: ST_ndIntersect、ST_ndDWithin、ST_ndContains、および ST_ndWithin。
オペレーターファミリーの選択
各オペレーターファミリーは、軸 (x、y、z、t) の特定の組み合わせにインデックスを作成し、対応するクエリタイプをサポートします。クエリがフィルターする軸に一致するオペレーターファミリーを選択してください。
| オペレーターファミリー | インデックス付き軸 | サポートされるクエリタイプ |
|---|---|---|
trajgist_ops_z | z | Z 軸クエリ |
trajgist_ops_t | t | T 軸クエリ |
trajgist_ops_2d | x、y | X/Y 軸クエリ |
trajgist_ops_2dt | x、y、t | X/Y のみ、T のみ、および X/Y/T クエリ |
trajgist_ops_3d | x、y、z | X/Y のみ、Z のみ、および X/Y/Z クエリ |
trajgist_ops_3dt | x、y、z、t | 上記5つのファミリーでサポートされるすべてのクエリタイプ |
trajgist_ops_multi | 複数のバウンディングボックス | クエリを高速化します。他のファミリーよりも作成に時間とストレージを要します |
オペレーターファミリーの選択:
T 軸のみをクエリする場合:
trajgist_ops_tX/Y と T を一緒にクエリする場合:
trajgist_ops_2dt(2つの別々のインデックスではなく、1つのインデックス)すべての軸をクエリする場合:
trajgist_ops_3dt最大限のクエリカバー率が必要で、より高いストレージとインデックス作成時間を許容できる場合:
trajgist_ops_multi
例
T 軸にインデックスを作成します:
CREATE INDEX ON table_name USING GIST(traj_col trajgist_ops_t);X 軸と Y 軸にインデックスを作成します:
CREATE INDEX ON table_name USING GIST(traj_col trajgist_ops_2d);X 軸、Y 軸、T 軸にインデックスを作成します:
CREATE INDEX ON table_name USING GIST(traj_col trajgist_ops_2dt);次のステップ
ganos.trajectory.index_split_config — GiST インデックス作成時に軌跡を分割するために使用されるルールを設定します。