4.6.1. Создание пространственных индексов
4.6.1. Создание пространственных индексов
MySQL может создавать пространственные индексы, использующие синтаксис, подобный аналогичному для создания регулярных индексов, но расширенный с ключевым словом SPATIAL. В настоящее время пространственные столбцы, которые индексированы, должны быть объявлены как NOT NULL. Следующие примеры показывают, как создавать пространственные индексы:
С CREATE TABLE:CREATE TABLE geom (g GEOMETRY NOT NULL, SPATIAL INDEX(g));
С ALTER TABLE:ALTER TABLE geom ADD SPATIAL INDEX(g);
С CREATE INDEX:CREATE SPATIAL INDEX sp_index ON geom (g);
Для таблиц MyISAM SPATIAL INDEX создает индекс R-tree. Для других типов памяти, которые поддерживают пространственную индексацию, SPATIAL INDEX создает индекс B-tree. B-tree на пространственных значениях будет полезен для поисковых таблиц с точным значением, но не для диапазона.
Для удаления пространственного индекса, используйте ALTER TABLE или DROP INDEX:
С ALTER TABLE:ALTER TABLE geom DROP INDEX g;
С DROP INDEX:DROP INDEX sp_index ON geom;
Пример: Предположите, что таблица geom содержит больше, чем 32000 конфигурации, которые сохранены в столбце g типа GEOMETRY. Таблица также имеет столбец AUTO_INCREMENT fid для сохранения значений объекта ID.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
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ