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
|
|