Données spatiales avec MySQL
<<<
Créer un index géométrique Utiliser un index géométrique
>>>

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 :

  • 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

<< Créer un index géométrique >>
Données spatiales avec MySQL Optimiser l'analyse géographique Utiliser un index géométrique