MySQL peut créer des index géométriques en utilisant une
syntaxe similaire à celle utilisée avec les index classiques,
mais étendue avec l'attribut SPATIAL
. Les
colonnes géographiques doivent être déclarées comme
NOT NULL
. L'exemple suivant montre comment
créer un index géographique :
Avec CREATE TABLE
:
mysql> CREATE TABLE geom (g GEOMETRY NOT NULL, SPATIAL INDEX(g));
Avec ALTER TABLE
:
mysql> ALTER TABLE geom ADD SPATIAL INDEX(g);
Avec CREATE INDEX
:
mysql> CREATE SPATIAL INDEX sp_index ON geom (g);
Pour effacer un index géométrique, utilisez ALTER
TABLE
ou DROP INDEX
:
Avec ALTER TABLE
:
mysql> ALTER TABLE geom DROP INDEX g;
Avec DROP INDEX
:
mysql> DROP INDEX sp_index ON geom;
Exemple : supposons que la table geom
contient plus de 32000 formes, qui sont stockées dans la
colonne g
, avec le type
GEOMETRY
. La table dispose aussi d'une
colonne d'identifiant fid
, de type
AUTO_INCREMENT
pour stocker des identifiants
d'objet.
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)
Pour ajouter un index géométrique à la colonne
g
, utilisez cette commande :
mysql> ALTER TABLE geom ADD SPATIAL INDEX(g);
Query OK, 32376 rows affected (4.05 sec)
Records: 32376 Duplicates: 0 Warnings: 0
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.