Spec-Zone .ru
спецификации, руководства, описания, API
|
Для MyISAM
таблицы, MySQL может
создать пространственный, индексирует синтаксис использования, подобный этому для того, чтобы создать
регулярный, индексирует, но расширенный с помощью SPATIAL
ключевое слово. В
настоящий момент, столбцы в пространственном индексирует, должен быть объявлен NOT
NULL
. Следующие примеры демонстрируют, как создать пространственный, индексирует:
С CREATE TABLE
:
CREATE TABLE geom (g GEOMETRY NOT NULL, SPATIAL INDEX(g)) ENGINE=MyISAM;
С ALTER
TABLE
:
ALTER TABLE geom ADD SPATIAL INDEX(g);
С CREATE INDEX
:
CREATE SPATIAL INDEX sp_index ON geom (g);
Для MyISAM
таблицы, SPATIAL INDEX
создает
R-древовидный-индекс. Для механизмов хранения, которые поддерживают непространственную индексацию
пространственных столбцов, механизм создает B-дерево, индексируют. B-дерево индексирует на пространственных
значениях, будет полезно для поисков точного значения, но не для сканирований диапазона.
Для получения дополнительной информации по индексации пространственных столбцов см. Раздел
13.1.13,"CREATE INDEX
Синтаксис".
Отбрасывать пространственный индексирует, использовать ALTER TABLE
или DROP
INDEX
:
С ALTER
TABLE
:
ALTER TABLE geom DROP INDEX g;
С DROP INDEX
:
DROP INDEX sp_index ON geom;
Пример: Предположите что таблица geom
содержит больше чем 32 000 конфигураций,
которые сохранены в столбце g
из типа GEOMETRY
.
Таблица также имеет AUTO_INCREMENT
столбец fid
для
того, чтобы сохранить объектные Значения идентификаторов.
mysql>DESCRIBE geom;
+-------+----------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-------+----------+------+-----+---------+----------------+| 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)
Чтобы добавить пространственное индексируют на столбце g
, используйте этот
оператор:
mysql> ALTER TABLE geom ADD SPATIAL INDEX(g);
Query OK, 32376 rows affected (4.05 sec)Records: 32376 Duplicates: 0 Warnings: 0