MyISAM
および InnoDB
テーブルの場合、空間データを含むカラムでの検索操作は、SPATIAL
インデックスを使用して最適化できます。 もっとも典型的な操作は次のとおりです。
指定された点を含むすべてのオブジェクトを検索する点クエリー
所定の領域と重なるすべてのオブジェクトを検索する領域クエリー
MySQL では、2 次分割 R ツリーを使用して空間カラムの SPATIAL
インデックスが実装されています。 SPATIAL
インデックスは、ジオメトリの最小境界矩形 (MBR) を使用して構築されます。 大部分のジオメトリでは、MBR はそのジオメトリを囲む最小矩形となります。 水平または垂直方向のライン文字列では、MBR は矩形からライン文字列に縮退します。 点の場合、MBR は矩形から点に縮退します。
空間カラムに通常のインデックスを作成することも可能です。 非 SPATIAL
インデックスでは、POINT
カラムを除くすべての空間カラムでプリフィクスを宣言する必要があります。
MyISAM
および InnoDB
では、SPATIAL
インデックスと SPATIAL
以外のインデックスの両方がサポートされます。 その他のストレージエンジンはセクション13.1.15「CREATE INDEX ステートメント」で説明しているように、非 SPATIAL
インデックスをサポートします。