TrajGisT索引是GisT索引的擴(kuò)展。

背景信息

在GisT基礎(chǔ)上,TrajGisT提供額外兩點(diǎn)優(yōu)化:

  • TrajGisT對索引的開銷估計(jì)進(jìn)行了優(yōu)化,當(dāng)建立了多個索引時(shí),TrajGisT可以比GisT更好地在不同索引之間進(jìn)行選擇。
  • TrajGist支持索引的向上兼容,即當(dāng)索引所記錄的信息不足以對查詢進(jìn)行精確判斷時(shí),仍然可以通過索引掃描得到一個粗粒度的結(jié)果。例如只建立了時(shí)間索引,但需要進(jìn)行2維和時(shí)間的2DTIntersects操作時(shí),可以用時(shí)間索引過濾掉和給定的時(shí)間段不相交的軌跡。

語法

CREATE INDEX [index_name] on table_name USING TRAJGIST(traj_col [operator_family]);
  • index_name:索引名,可以省略。
  • table_name:表名。
  • traj_col:軌跡列名。
  • operator_family:指定索引所使用的算子族,可以省略,默認(rèn)值為trajgist_ops_3dt。
說明 建立索引后,可以加速各類算子以及ST_ndIntersect、ST_ndDWithin、ST_ndContains、ST_ndWithin函數(shù)的查詢。

支持算子族

當(dāng)前支持6個索引的算子族,說明如下。

算子族名稱 描述
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軸的查詢。
trajgist_ops_3d 對x、y、z軸范圍建立索引,支持所有包含x、y、z軸的查詢。
trajgist_ops_3dt 對x、y、z、t軸范圍建立索引,支持以上全部查詢。
說明 TrajGist目前僅支持單列索引,不能與其它(非軌跡)列建立多列索引。