このトピックでは、GiSTインデックス作成について説明します。 軌道データを格納する列にGiSTインデックスを作成できます。
構文
CREATE INDEX [index_name] on table_name USING GIST(traj_col [operator_family]);
index_name: インデックスの名前。 このパラメーターはオプションです。
table_name: 列が属するテーブルの名前。
traj_col: 列の名前。
operator_family: インデックスの作成に使用される演算子ファミリ。 デフォルト値: trajgist_ops_3dt このパラメーターはオプションです。
作成されたインデックスは、演算子と次の関数によって実行されるクエリを高速化します。
サポートされているオペレーターファミリー
次の表に、GiSTでサポートされている演算子ファミリを示します。
オペレータ家族 | 説明 |
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_3dt演算子ファミリーに加えて、ディメンション要件を満たす別の演算子ファミリーを指定することをお勧めします。
例:
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);