全部產品
Search
文件中心

AnalyticDB:GisT索引

更新時間:Feb 05, 2024

對軌跡資料列建立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);