For MyISAM
tables, search
operations in columns containing spatial data can be optimized
using SPATIAL
indexes. The most typical
operations are:
Point queries that search for all objects that contain a given point
Region queries that search for all objects that overlap a given region
MySQL uses R-Trees with quadratic
splitting for SPATIAL
indexes on
spatial columns. A SPATIAL
index is built
using the minimum bounding rectangle (MBR) of a geometry. For
most geometries, the MBR is a minimum rectangle that surrounds
the geometries. For a horizontal or a vertical linestring, the
MBR is a rectangle degenerated into the linestring. For a point,
the MBR is a rectangle degenerated into the point.
It is also possible to create normal indexes on spatial columns.
In a non-SPATIAL
index, you must declare a
prefix for any spatial column except for
POINT
columns.
MyISAM
supports both
SPATIAL
and non-SPATIAL
indexes. Other storage engines support
non-SPATIAL
indexes, as described in
Section 13.1.13, “CREATE INDEX Statement”.