时空索引包括时空主键索引和时空二级索引,本文介绍创建时空索引的方法。
使用区别
下表介绍时空主键索引和时空二级索引在使用过程中的区别。
时空索引分类 | 是否支持多个时空列的构建 | 备注 |
---|---|---|
时空主键索引 | 支持对多个时空列建立索引,但是建议只包含一个时空列,其他时空列可以构建时空二级索引。 | 只能在创建时空数据表时添加主键索引,添加后不支持修改、增加和删除操作。 |
时空二级索引 | 支持对多个时空列建立索引。 | 可以在创建时空数据表时添加二级索引,也可以在创建时空数据表之后添加二级索引。添加后支持增加和删除时空二级索引,不支持修改时空二级索引。 |
创建时空主键索引
时空编码作为主键索引的组成部分,此时主键索引为时空主键索引。创建时空主键索引的语法示例如下:
Z-ORDER
索引函数对g列进行时空编码。-- 主键索引只包含Z-ORDER CREATE TABLE point_table(id INT, g GEOMETRY(POINT), name VARCHAR, PRIMARY KEY(Z-ORDER(g))); -- 主键索引包含Z-ORDER和ID的组合 CREATE TABLE point_table(id INT, g GEOMETRY(POINT), name VARCHAR, PRIMARY KEY(Z-ORDER(g),id));
Z-ORDER
索引函数对g列和t列进行时空编码。-- 主键索引只包含Z-ORDER CREATE TABLE point_table(id INT, g GEOMETRY(POINT), name VARCHAR, t LONG, PRIMARY KEY(Z-ORDER(g,t))); -- 主键索引包含Z-ORDER和ID的组合 CREATE TABLE point_table(id INT, g GEOMETRY(POINT), name VARCHAR, t LONG, PRIMARY KEY(Z-ORDER(g,t),id));
创建时空二级索引
时空编码作为二级索引的组成部分,此时二级索引为时空二级索引。创建时空二级索引的示例如下: