對軌跡資料列建立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參數調整。
說明 建立索引後,可以加速各類運算元以及ST_ndIntersect、ST_ndDWithin、ST_ndContains、ST_ndWithin函數的查詢。
支援運算元族
當前支援7個索引的運算元族,說明如下。
運算元族名稱 | 描述 |
trajgist_ops_z | 對z軸範圍建立索引,支援僅包含z軸的查詢。 |
trajgist_ops_t | 對t軸範圍建立索引,支援僅包含t軸的查詢。 |
trajgist_ops_2d | 對x、y軸範圍建立索引,支援僅包含x、y軸資訊的查詢。 |
trajgist_ops_2dt | 對x、y、t軸範圍建立索引,支援二維、時間,以及混合查詢。 |
trajgist_ops_3d | 對x、y、z軸範圍建立索引,支援二維、三維、z軸查詢。 |
trajgist_ops_3dt | 對x、y、z、t軸範圍建立索引,支援以上全部查詢。 |
trajgist_ops_multi | 建立多外包架構索引,以加速查詢,但建立更慢並佔用更多空間。 |
樣本
- 建立時間維索引。
CREATE INDEX on table_name USING GIST(traj_col trajgist_ops_t);
- 建立二維索引。
CREATE INDEX on table_name USING GIST(traj_col trajgist_ops_2d);
- 建立二維時空複合索引。
CREATE INDEX on table_name USING GIST(traj_col trajgist_ops_2dt);