For MyISAM and
InnoDB 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 and InnoDB support
both SPATIAL and
non-SPATIAL indexes. Other storage engines
support non-SPATIAL indexes, as described in
Section 15.1.15, “CREATE INDEX Statement”.