MyISAM and (as of MySQL 5.7.5)
InnoDB tables, search operations in columns
containing spatial data can be optimized using
SPATIAL indexes. The most typical operations
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
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
SPATIAL indexes. Other storage engines
SPATIAL indexes, as described in
Section 13.1.14, “CREATE INDEX Syntax”.