MySQL kann raumbezogene Indizes mit einer ähnlichen Syntax
        anlegen, wie sie auch für normale Indizes verwendet wird,
        allerdings erweitert um das Schlüsselwort
        SPATIAL. Zurzeit müssen raumbezogene
        Spalten, die indiziert werden, als NOT NULL
        deklariert werden. Die folgenden Beispiele zeigen, wie man
        raumbezogene Indizes anlegen kann:
      
            Mit CREATE TABLE:
          
CREATE TABLE geom (g GEOMETRY NOT NULL, SPATIAL INDEX(g));
            Mit ALTER TABLE:
          
ALTER TABLE geom ADD SPATIAL INDEX(g);
            Mit CREATE INDEX:
          
CREATE SPATIAL INDEX sp_index ON geom (g);
        Auf MyISAM-Tabellen legt SPATIAL
        INDEX einen R-Tree-Index an, aber auf Tabellen mit
        anderen Speicher-Engines, die raumbezogene Indizierung
        unterstützen, erzeugt SPATIAL INDEX einen
        B-Tree-Index. Ein B-Tree-Index auf raumbezogenen Werten ist
        nützlich für das Nachschlagen konkreter Werte, aber nicht für
        Bereichsscans.
      
        Gelöscht werden raumbezogene Indizes mit ALTER
        TABLE oder DROP INDEX:
      
            Mit ALTER TABLE:
          
ALTER TABLE geom DROP INDEX g;
            Mit DROP INDEX:
          
DROP INDEX sp_index ON geom;
        Beispiel: Angenommen, eine Tabelle namens
        geom enthält mehr als 32.000 Geometrien, die
        alle in der Spalte g vom Typ
        GEOMETRY gespeichert sind. Die Tabelle hat
        außerdem eine AUTO_INCREMENT-Spalte namens
        fid zum Speichern der Objekt-IDs.
      
mysql>DESCRIBE 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)
        Mti folgender Anweisung definieren Sie einen raumbezogenen Index
        auf der Spalte g:
      
mysql> ALTER TABLE geom ADD SPATIAL INDEX(g);
Query OK, 32376 rows affected (4.05 sec)
Records: 32376  Duplicates: 0  Warnings: 0
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

