暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

[ACDU 翻译] MySQL 11.4.1 空间数据类型

原创 由迪 2022-01-12
322

MySQL 具有对应于 OpenGIS 类的空间数据类型。第 11.4.2 节“OpenGIS 几何模型”中描述了这些类型的基础 。

一些空间数据类型包含单个几何值:

  • GEOMETRY
  • POINT
  • LINESTRING
  • POLYGON

GEOMETRY可以存储任何类型的几何值。其他单值类型(POINTLINESTRINGPOLYGON)将它们的值限制为特定的几何类型。

其他空间数据类型包含值的集合:

  • MULTIPOINT
  • MULTILINESTRING
  • MULTIPOLYGON
  • GEOMETRYCOLLECTION

GEOMETRYCOLLECTION可以存储任何类型的对象的集合。其他集合类型(MULTIPOINTMULTILINESTRINGMULTIPOLYGON)将集合成员限制为具有特定几何类型的成员。

示例:要创建一个名为的表geom,该表的列名为g,该列可以存储任何几何类型的值,请使用以下语句:

CREATE TABLE geom (g GEOMETRY);

具有空间数据类型的列可以具有 SRID属性,以明确指示存储在列中的值的空间参考系统 (SRS)。例如:

CREATE TABLE geom ( p POINT SRID 0, g GEOMETRY NOT NULL SRID 4326 );

SPATIAL如果空间列具有NOT NULL并且具有特定的 SRID,则可以在空间列上创建索引,因此,如果您计划对列进行索引,请使用NOT NULLandSRID 属性声明它:

CREATE TABLE geom (g GEOMETRY NOT NULL SRID 4326);

InnoDB表允许SRID 笛卡尔和地理 SRS 的值。 MyISAM表允许SRID 笛卡尔 SRS 的值。

SRID属性使空间列受 SRID 限制,这具有以下含义:

  • 该列只能包含具有给定 SRID 的值。尝试插入具有不同 SRID 的值会产生错误。
  • 优化器可以SPATIAL在列上使用索引。请参阅 第 8.3.3 节,“空间索引优化”

没有SRID属性的空间列不受 SRID 限制,并接受具有任何 SRID 的值。但是,在SPATIAL修改列定义以包含一个SRID属性之前,优化器不能对它们使用索引 ,这可能需要首先修改列内容,以便所有值都具有相同的 SRID。

有关如何在 MySQL 中使用空间数据类型的其他示例,请参阅第 11.4.6 节,“创建空间列”。有关空间参考系统的信息,请参阅 第 11.4.5 节,“空间参考系统支持”

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论