Criando Índices Espaciais


O MariaDB pode criar índices espaciais usando uma sintaxe similar àquela usada para criar índices regulares, mas extendida com a palavra-chave SPATIAL. Colunas espaciais indexadas devem ser declaradas como NOT NULL. Os seguintes exemplos demonstram como criar índices de colunas espaciais.

Para remover índices espaciais, use ALTER TABLE ou DROP INDEX:

Example: Suponha que uma tabela geom contém mais de 32000 geometrias, que estão armazenadas na coluna g do tipo GEOMETRY. A tabela também tem um campo AUTO_INCREMENT fid, armazenando valores dos IDs de objetos.

mysql> SHOW FIELDS FROM 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)

Para adicionar um índice espacial na coluna g, use esta instrução:

mysql> ALTER TABLE geom ADD SPATIAL INDEX(g);
Query OK, 32376 rows affected (4.05 sec)
Records: 32376 Duplicates: 0 Warnings: 0

Retornar