为了GydF4y2BaInnodb.GydF4y2Ba
和GydF4y2Bamyisam.GydF4y2Ba
表格,MySQL可以使用类似于创建常规索引的语法创建空间索引,但使用类似的语法,但使用GydF4y2Ba空间GydF4y2Ba
关键词。必须声明空间索引中的列GydF4y2Ba没有空GydF4y2Ba
。以下示例演示了如何创建空间索引:GydF4y2Ba
和GydF4y2Ba
创建表GydF4y2Ba
:GydF4y2Ba创建表格(G几何不为空SRID 4326,空间索引(G));GydF4y2Ba
和GydF4y2Ba
改变表GydF4y2Ba
:GydF4y2Ba创建表格(G几何不为空SRID 4326);ALTER表GEOM添加空间索引(G);GydF4y2Ba
和GydF4y2Ba
创建索引GydF4y2Ba
:GydF4y2Ba创建表格(G几何不为空SRID 4326);在Geom(g)上创建空间指数g;GydF4y2Ba
空间指数GydF4y2Ba
创建一个R树索引。对于支持空间列的非缺位索引的存储引擎,该引擎会创建B树索引。空间值的B树索引对于精确值查找是有用的,但不适用于范围扫描。GydF4y2Ba
优化器可以使用SRID限制的列上定义的空间索引。有关更多信息,请参阅GydF4y2Ba第11.4.1节“空间数据类型”GydF4y2Ba, 和GydF4y2Ba第8.3.3节“空间指数优化”GydF4y2Ba。GydF4y2Ba
有关索引空间列的更多信息,请参阅GydF4y2Ba第13.1.15节“创建索引声明”GydF4y2Ba。GydF4y2Ba
删除空间索引,使用GydF4y2Ba改变表GydF4y2Ba
或者GydF4y2Ba下降索引GydF4y2Ba
:GydF4y2Ba
和GydF4y2Ba
改变表GydF4y2Ba
:GydF4y2Ba改变表Geom Drop Index G;GydF4y2Ba
和GydF4y2Ba
下降索引GydF4y2Ba
:GydF4y2Ba下降指数g在geom;GydF4y2Ba
示例:假设一个表GydF4y2Ba地质GydF4y2Ba
包含超过32,000个几何形状,存储在列中GydF4y2BaGGydF4y2Ba
类型GydF4y2Ba几何学GydF4y2Ba
。桌子也有一个GydF4y2Ba自动递增GydF4y2Ba
柱子GydF4y2Ba弗弗GydF4y2Ba
用于存储对象ID值。GydF4y2Ba
mysql>描述geom;+ ------- + --------- + ------ + ----- + --------- + ---------------- + |领域|型号null |钥匙|默认额外|+ ------- + --------- + ------ + ----- + --------- + ---------------- + |FID | int(11) | | PRI | NULL | auto_increment | | g | geometry | | | | | +-------+----------+------+-----+---------+----------------+ 2 rows in set (0.00 sec) mysql> SELECT COUNT(*) FROM geom; +----------+ | count(*) | +----------+ | 32376 | +----------+ 1 row in set (0.00 sec)
在列上添加空间索引GydF4y2BaGGydF4y2Ba
,使用此声明:GydF4y2Ba
MySQL> Alter表GeoM添加空间索引(g);查询OK,32376行受影响(4.05秒)记录:32376复制品:0警告:0GydF4y2Ba