Чтение онлайн

на главную

Жанры

MySQL: руководство профессионала

Паутов Алексей В.

Шрифт:

По той же самой причине Вы не можете позже добавлять уникальный ключ к разбитой на разделы таблице, если этот ключ не включает все столбцы, используемые выражением выделения разделов таблицы. Рассмотрите разбитую на разделы таблицу, определенную так, как показано здесь:

CREATE TABLE t_no_pk (c1 INT, c2 INT)

PARTITION BY RANGE(c1) (PARTITION p0 VALUES LESS THAN (10),

PARTITION p1 VALUES LESS THAN (20),

PARTITION p2 VALUES LESS THAN (30),

PARTITION p3 VALUES LESS THAN (40));

Возможно добавить первичный ключ к t_no_pk, используя любую из этих инструкций ALTER TABLE:

# possible PK

ALTER TABLE t_no_pk ADD PRIMARY KEY(c1);

# also a possible PK

ALTER TABLE t_no_pk ADD PRIMARY KEY(c1, c2);

Однако, следующие операторы свалятся потому, что c1 представляет собой часть ключа выделения разделов, но не часть предложенного первичного ключа:

# fails with ERROR 1482

ALTER TABLE t_no_pk ADD PRIMARY KEY(c2);

С тех пор как t_no_pk имеет только c1 в

выражении выделения разделов, попытка добавления уникального ключа на c2 всегда провалится. Однако, Вы можете добавлять уникальный ключ, который использует c1 и c2.

Эти правила также относятся к существующим не разбитым на разделы таблицам, в которых Вы желаете выделить разделы используя ALTER TABLE … PARTITION BY. Рассмотрите таблицу np_pk:

CREATE TABLE np_pk (

id INT NOT NULL AUTO_INCREMENT,

name VARCHAR(50),

added DATE, PRIMARY KEY (id)

);

Следующяя инструкция ALTER TABLE потерпит неудачу с ошибкой, потому что столбец added не является частью любого

уникального ключа в таблице:

ALTER TABLE np_pk PARTITION BY HASH(TO_DAYS(added)) PARTITIONS 4;

Эта инструкция, однако, была бы полностью допустима:

ALTER TABLE np_pk PARTITION BY HASH(id) PARTITIONS 4;

В случае np_pk единственный столбец, который может использоваться как часть выражения выделения разделов, id. Если Вы желаете выделить разделы этой таблицы, использующие любой другой столбец или столбцы в выражении выделения разделов, Вы должны сначала изменить таблицу, добавляя желательный столбец или столбцы на первичный ключ или удаляя первичный ключ в целом.

Подразделы ограничены выделением разделов HASH или KEY. Разделы HASH и KEY не могут быть

подразбиты на разделы.

Глава 4. Пространственные расширения

MySQL поддерживает пространственные расширения, чтобы позволить хранение и анализ географических свойств. Эти свойства доступны для таблиц типов MyISAM, InnoDB, NDB и ARCHIVE. Однако, тип ARCHIVE не поддерживает индексацию, так что пространственные столбцы в столбцах ARCHIVE не могут быть индексированы. MySQL Cluster также не поддерживает индексацию пространственных столбцов.

Хотя пространственные расширения обеспечиваются в таблицах InnoDB, использование пространственных индексов может вызывать аварийный отказ (Глюк #15860).

Эта глава покрывает следующие темы:

Основание этих пространственных расширений в модели геометрии OpenGIS.

Форматы для представления пространственных данных.

Как использовать пространственные данные в MySQL.

Использование индексации для пространственных данных.

Отличия MySQL от спецификации OpenGIS.

Дополнительные ресурсы

Open Geospatial Consortium издает OpenGIS Simple Features Specifications For SQL, документ, который предлагает несколько концептуальных способов для распространения SQL RDBMS, чтобы поддерживать пространственные данные. Эта спецификация доступна на http://www.opengis.org/docs/99-049.pdf.

Если Вы имеете вопросы или интересы относительно использования пространственных расширений MySQL, Вы можете обсуждать их на форуме GIS: http://forums.mysql.com/list.php?23.

4.1. Введение в пространственную поддержку MySQL

MySQL осуществляет пространственные расширения по спецификации Open Geospatial Consortium (OGC). Это международный консорциум более, чем 250 компаний, агентств и университетов, участвующих в разработке публично доступных концептуальных решений, которые могут быть полезны со всеми видами прикладных программ, которые управляют пространственными данными. OGC поддерживает Web-сайт http://www.opengis.org/.

В 1997 Open Geospatial Consortium опубликовал OpenGIS Simple Features Specifications For SQL. Эта спецификация доступна на http://www.opengis.org/docs/99-049.pdf.

MySQL осуществляет подмножество типов SQL with Geometry Types, среду, предложенную OGC. Этот термин относится к SQL-среде, которая была расширена с набором типов геометрии. Оцененный геометрией SQL столбец выполнен как столбец, который имеет тип геометрии. Спецификация описывает набор SQL-типов геометрии также, как функций на этих типах, чтобы создавать и анализировать значения геометрии.

Географическее свойство состоит в том, что есть что-нибудь в мире, имеющее расположение. Свойство может быть:

Объект. Например, гора, водоем, город.

Пустота. Например, область почтового индекса, тропики.

Определимое расположение. Например, дорога, как специфическое место, где два прохода пересекаются.

Некоторые документы используют термин geospatial feature, чтобы обратиться к географическим свойствам.

Популярные книги

Возвышение Меркурия. Книга 4

Кронос Александр
4. Меркурий
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Возвышение Меркурия. Книга 4

Большая Гонка

Кораблев Родион
16. Другая сторона
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Большая Гонка

Сахар на дне

Малиновская Маша
2. Со стеклом
Любовные романы:
современные любовные романы
эро литература
7.64
рейтинг книги
Сахар на дне

Сердце Дракона. Том 19. Часть 1

Клеванский Кирилл Сергеевич
19. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.52
рейтинг книги
Сердце Дракона. Том 19. Часть 1

Кодекс Крови. Книга VIII

Борзых М.
8. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VIII

Лейб-хирург

Дроздов Анатолий Федорович
2. Зауряд-врач
Фантастика:
альтернативная история
7.34
рейтинг книги
Лейб-хирург

Совок 11

Агарев Вадим
11. Совок
Фантастика:
попаданцы
7.50
рейтинг книги
Совок 11

Я – Орк. Том 3

Лисицин Евгений
3. Я — Орк
Фантастика:
юмористическое фэнтези
попаданцы
5.00
рейтинг книги
Я – Орк. Том 3

Ненаглядная жена его светлости

Зика Натаэль
Любовные романы:
любовно-фантастические романы
6.23
рейтинг книги
Ненаглядная жена его светлости

Мымра!

Фад Диана
1. Мымрики
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Мымра!

Сумеречный Стрелок 4

Карелин Сергей Витальевич
4. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 4

Неудержимый. Книга XV

Боярский Андрей
15. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XV

Темный Лекарь

Токсик Саша
1. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь

Два лика Ирэн

Ром Полина
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Два лика Ирэн