| 19.6 Optimiser l'analyse géographique
 19 Données spatiales avec MySQL
 Manuel de Référence MySQL 4.1 : Version Française
 
 ->Créer un index géométrique
 . Utiliser un index géométrique
 
 
 | 
  19.6.1 Créer un index géométrique 
 
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 : 
 
Pour effacer un index géométrique, utilisez 
 
ALTER TABLE
  ou  
DROP INDEX
 : 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);
 | 
 
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. Avec  
ALTER TABLE
 : 
| 
mysql> ALTER TABLE geom DROP INDEX g;
 | 
 Avec  
DROP INDEX
 : 
| 
mysql> DROP INDEX sp_index ON geom;
 | 
 Pour ajouter un index géométrique à la colonne  
g
 , utilisez cette
commande :| 
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)
 | 
 | 
mysql> ALTER TABLE geom ADD SPATIAL INDEX(g);Query OK, 32376 rows affected (4.05 sec)
 Records: 32376  Duplicates: 0  Warnings: 0
 | 
 |