Spec-Zone .ru
спецификации, руководства, описания, API

Глава 17. Разделение

Оглавление

17.1. Краткий обзор Разделения в MySQL
17.2. Разделение Типов
17.2.1. RANGE Разделение
17.2.2. LIST Разделение
17.2.3. COLUMNS Разделение
17.2.4. HASH Разделение
17.2.5. KEY Разделение
17.2.6. Подразделение
17.2.7. Как MySQL Partitioning Handles NULL
17.3. Управление разделом
17.3.1. Управление RANGE и LIST Разделы
17.3.2. Управление HASH и KEYРазделы
17.3.3. Обмен Разделами и Подразделами с Таблицами
17.3.4. Обслуживание Разделов
17.3.5. Получение информации О Разделах
17.4. Сокращение раздела
17.5. Выбор раздела
17.6. Ограничения и Ограничения на Разделение
17.6.1. Деля Ключи, Первичные ключи, и Уникальные ключи
17.6.2. Разделение Ограничений, Касающихся Механизмов Хранения
17.6.3. Разделение Ограничений, Касающихся Функций
17.6.4. Разделение и Блокировка

Эта глава обсуждает реализацию MySQL определяемого пользователем разделения. Можно определить, поддерживает ли Ваш MySQL Server разделение, проверяя вывод SHOW PLUGINS оператор, как показано здесь:

mysql> SHOW PLUGINS;+------------+----------+----------------+---------+---------+| Name       | Status   | Type           | Library | License |+------------+----------+----------------+---------+---------+| binlog     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     || partition | ACTIVE | STORAGE ENGINE | NULL | GPL || ARCHIVE    | ACTIVE   | STORAGE ENGINE | NULL    | GPL     || BLACKHOLE  | ACTIVE   | STORAGE ENGINE | NULL    | GPL     || CSV        | ACTIVE   | STORAGE ENGINE | NULL    | GPL     || FEDERATED  | DISABLED | STORAGE ENGINE | NULL    | GPL     || MEMORY     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     || InnoDB     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     || MRG_MYISAM | ACTIVE   | STORAGE ENGINE | NULL    | GPL     || MyISAM     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     || ndbcluster | DISABLED | STORAGE ENGINE | NULL    | GPL     |+------------+----------+----------------+---------+---------+11 rows in set (0.00 sec)

Можно также проверить INFORMATION_SCHEMA.PLUGINS таблица с запросом, подобным этому:

mysql> SELECT     ->     PLUGIN_NAME as Name,     ->     PLUGIN_VERSION
        as Version,     ->     PLUGIN_STATUS as
        Status     -> FROM INFORMATION_SCHEMA.PLUGINS     -> WHERE PLUGIN_TYPE='STORAGE ENGINE';+--------------------+---------+--------+| Name               | Version | Status |+--------------------+---------+--------+| binlog             | 1.0     | ACTIVE || CSV                | 1.0     | ACTIVE || MEMORY             | 1.0     | ACTIVE || MRG_MYISAM         | 1.0     | ACTIVE || MyISAM             | 1.0     | ACTIVE || PERFORMANCE_SCHEMA | 0.1     | ACTIVE || BLACKHOLE          | 1.0     | ACTIVE || ARCHIVE            | 3.0     | ACTIVE || InnoDB             | 5.6     | ACTIVE || partition | 1.0 | ACTIVE |+--------------------+---------+--------+10 rows in set (0.00 sec)

В любом случае, если Вы не видите partition плагин перечисляется со значением ACTIVE для Status столбец в выводе (показанный полужирным текст в каждом из примеров, только данных), тогда Ваша версия MySQL, не был создан с разделением поддержки.

Двоичные файлы Сообщества MySQL 5.7, обеспеченные Oracle, включают поддержку разделения. Для получения информации о разделении поддержки, предлагаемой в коммерческих двоичных файлах MySQL Server, см. Сервер MySQL Enterprise 5.1 на MySQL Web site в http://www.mysql.com/products/enterprise/server.html.

Чтобы позволить делить, если Вы компилируете MySQL 5.7 из источника, создавание должно быть сконфигурировано с -DWITH_PARTITION_STORAGE_ENGINE опция. Для получения дополнительной информации о создании MySQL, см. Раздел 2.9, "Устанавливая MySQL из Источника".

Если Ваш двоичный файл MySQL создается с разделением поддержки, ничто дальнейшие потребности, которые будут сделаны, чтобы включить этому (например, никакие специальные записи не требуются в Вашем my.cnf файл).

Если Вы хотите отключить поддержку разделения, можно запустить MySQL Server с --skip-partition опция, когда значение have_partitioning DISABLED. Когда разделение поддержки отключается, можно видеть любые существующие разделенные таблицы и отбросить их (хотя выполнение этого не советуется), но невозможно иначе управлять ими или получить доступ к их данным.

Введение в разделение и разделение понятий может быть найдено в Разделе 17.1, "Краткий обзор Разделения в MySQL".

MySQL поддерживает несколько типов разделения, которые обсуждаются в Разделе 17.2, "Деля Типы", так же как подразделение, которое описывается в Разделе 17.2.6, "Подделя".

Методы добавления, удаления, и изменения разделов в существующих разделенных таблицах покрываются Разделом 17.3, "управление Разделом".

Табличные команды обслуживания для использования с разделенными таблицами обсуждаются в Разделе 17.3.4, "Обслуживание Разделов".

PARTITIONS таблица в INFORMATION_SCHEMA база данных предоставляет информацию о разделах и разделенных таблицах. См. Раздел 19.14," INFORMATION_SCHEMA PARTITIONS Таблица", для получения дополнительной информации; для некоторых примеров запросов против этой таблицы см. Раздел 17.2.7, "Дескрипторы Разделения MySQL How NULL".

Для известных проблем с разделением в MySQL 5.7 см. Раздел 17.6, "Ограничения и Ограничения на Разделение".

Можно также найти, что следующие ресурсы полезны, работая с разделенными таблицами.

Дополнительные Ресурсы. Другие источники информации об определяемом пользователем разделении в MySQL включают следующее:

Двоичные файлы MySQL 5.7 доступны от http://dev.mysql.com/downloads/mysql/5.7.html. Однако, для последнего разделения bugfixes и дополнений функции, можно получить источник из нашего репозитария Базара. Чтобы позволить делить, создавание должно быть сконфигурировано с -DWITH_PARTITION_STORAGE_ENGINE опция. Для получения дополнительной информации о создании MySQL, см. Раздел 2.9, "Устанавливая MySQL из Источника". Если у Вас есть проблемы, компилируя поддерживающий разделение MySQL 5.7, создают, проверяют MySQL Partitioning Forum и просят помощи там, если Вы не считаете решение своей проблемы уже отправленным.