SPATIAL
インデックスを使えば、非空間データベースでの検索処理を最適化することができます。空間データベースでも同じことが言えます。これまでに設計されたさまざまな多次元インデックス手法を活用すれば、空間検索の最適化が可能となります。それらのうちで、もっとも典型的なものを次に示します。
指定された点を含むすべてのオブジェクトを検索する点クエリー
指定された領域とオーバーラップするすべてのオブジェクトを検索する領域クエリー
MySQL では、「2 次分割 R 木 (R-Trees with quadratic
splitting)」を使って空間カラムの
SPATIAL
インデックスが実装されています。SPATIAL
インデックスは、幾何図形の MBR
を使って構築されます。大部分の幾何図形では、MBR
はその幾何図形を囲む最小矩形となります。水平または垂直向きのラインストリングでは、MBR
は矩形からラインストリングに縮退します。点の場合、MBR
は矩形から点に縮退します。
空間カラムに通常のインデックスを作成することも可能です。非
SPATIAL
インデックスでは、POINT
カラムを除くすべての空間カラムで接頭辞を宣言する必要があります。
MyISAM
は、SPATIAL
インデックスと非
SPATIAL
インデックスの両方をサポートします。その他のストレージエンジンは項8.1.13. 「CREATE INDEX
構文」で説明しているように、非
SPATIAL
インデックスをサポートします。