全部產品
Search
文件中心

PolarDB:GisT索引

更新時間:Jul 06, 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_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);