GisT索引

对轨迹数据列创建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);