對軌跡資料列建立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。
說明 建立索引後,可以加速各類運算元以及ST_ndIntersect、ST_ndDWithin、ST_ndContains、ST_ndWithin函數的查詢。
支援運算元族
當前支援6個索引的運算元族,說明如下。
| 運算元族名稱 | 描述 |
| 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_3dt之外建立對應維度查詢。
樣本
--建立時間維索引。
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);