首批通过分布式安全可靠测评,为关键业务系统打造
创建空间索引
更新时间:2026-04-10 11:58:35
OceanBase 数据库支持创建常规索引的语法创建空间索引,但使用 SPATIAL 关键字。空间索引中的列必须声明为 NOT NULL。
以下示例展示如何创建空间索引:
- 使用
CREATE TABLE:
CREATE TABLE geom (g GEOMETRY NOT NULL SRID 4326, SPATIAL INDEX(g));
- 使用
ALTER TABLE:
CREATE TABLE geom (g GEOMETRY NOT NULL SRID 4326);
ALTER TABLE geom ADD SPATIAL INDEX(g);
- 使用
CREATE INDEX:
CREATE TABLE geom (g GEOMETRY NOT NULL SRID 4326);
CREATE SPATIAL INDEX g ON geom (g);
以下示例展示如何删除空间索引:
- 使用
ALTER TABLE:
ALTER TABLE geom DROP INDEX g;
- 使用
DROP INDEX:
DROP INDEX g ON geom;
创建空间索引的相关约束如下:
- 创建空间索引的列定义中必须包含
NOT NULL约束。 - 在创建了索引之后,比较的时候使用列定义中的 SRID 所对应的坐标系。空间索引存储了几何对象的 MBR(Minimum Bounding Rectangle)构建,MBR 的比较方式也依赖于 SRID。
- 创建了空间索引的列最好是已经定义了 SRID,否则在该列上建的空间索引在查询时无法生效。