13.4.1 Типы пространственных данных
MySQL имеет типы пространственных данных, которые соответствуют классам OpenGIS. Основа этих типов описана в разделе 13.4.2, «Модель геометрии OpenGIS».
Некоторые типы пространственных данных хранят отдельные значения геометрии:
GEOMETRYPOINTLINESTRINGPOLYGON
GEOMETRY может хранить значения геометрии любого типа. Другие типы с одним значением (POINT, LINESTRING и POLYGON) ограничивают свои значения определённым типом геометрии.
Другие типы пространственных данных хранят коллекции значений:
MULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION
GEOMETRYCOLLECTION может хранить коллекцию объектов любого типа. Другие типы коллекций (MULTIPOINT, MULTILINESTRING и MULTIPOLYGON) ограничивают члены коллекции объектами определённого типа геометрии.
Пример: чтобы создать таблицу под названием geom, которая имеет столбец под названием g, который может хранить значения любого типа геометрии, используйте это выражение:
CREATE TABLE geom (g GEOMETRY);
Столбцы с типом пространственных данных могут иметь атрибут SRID, чтобы явно указать систему пространственных ссылок (SRS) для значений, хранящихся в столбце. Например:
CREATE TABLE geom (
p POINT SRID 0,
g GEOMETRY NOT NULL SRID 4326
);
Индексы SPATIAL могут быть созданы на пространственных столбцах, если они являются NOT NULL и имеют определённый SRID, поэтому, если вы планируете создать индекс для столбца, объявите его с атрибутами NOT NULL и SRID:
CREATE TABLE geom (g GEOMETRY NOT NULL SRID 4326);
Таблицы InnoDB допускают SRID значения для декартовых и географических систем SRS. Таблицы MyISAM допускают SRID значения для декартовых систем SRS.
Атрибут SRID делает пространственный столбец SRID-ограниченным, что имеет эти последствия:
Столбец может содержать только значения с заданным SRID. Попытки вставить значения с другим SRID приведут к ошибке.
Оптимизатор может использовать индексы
SPATIALдля столбца. См. раздел 10.3.3, «Оптимизация индексов SPATIAL».
Пространственные столбцы без атрибута SRID не являются SRID-ограниченными и принимают значения с любым SRID. Однако оптимизатор не может использовать индексы SPATIAL для них, пока определение столбца не будет изменено для включения атрибута SRID, что может потребовать изменения содержимого столбца, чтобы все значения имели одинаковый SRID.
Для получения других примеров использования типов пространственных данных в MySQL, см. раздел 13.4.6, «Создание пространственных столбцов». Сведения о системах пространственных ссылок см. в разделе 13.4.5, «Поддержка систем пространственных ссылок».
© 2025 Oracle
Licensed under the GPLv2 License.