Spec-Zone.ru › MariaDB

Тип разбиения LIST

Разбиение LIST концептуально похоже на разбиение RANGE. В обоих случаях вы определяете выражение разбиения (столбец или немного более сложное вычисление) и используете его для определения, в какие разделы попадет каждая строка. Однако с типом RANGE разбиение выполняется путем назначения диапазона значений каждому разделу. С типом LIST мы назначаем набор значений каждому разделу. Это обычно предпочтительнее, если выражение разбиения может возвращать ограниченный набор значений.

Вариант этого метода разбиения, LIST COLUMNS, позволяет нам использовать несколько столбцов и больше типов данных.

Синтаксис

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

PARTITION BY LIST (partitioning_expression)
(
	PARTITION partition_name VALUES IN (value_list),
	[ PARTITION partition_name VALUES IN (value_list), ... ]
        [ PARTITION partition_name DEFAULT ]
)

PARTITION BY LIST указывает, что тип разбиения — LIST.

partitioning_expression — это SQL-выражение, которое возвращает значение из каждой строки. В простейших случаях это имя столбца. Это значение используется для определения, в какой раздел должна попасть строка.

partition_name — это имя раздела.

value_list — это список значений. Если partitioning_expression возвращает одно из этих значений, строка будет храниться в этом разделе. Если мы попытаемся вставить что-то, что не принадлежит ни одному из этих списков значений, строка будет отклонена с ошибкой.

Раздел DEFAULT собирает все записи, которые не подходят ни к одному из других разделов. Разрешается только один раздел DEFAULT. Эта опция была добавлена в MariaDB 10.2.

Примеры использования

Разбиение LIST может быть полезно, когда у нас есть столбец, который может содержать только ограниченный набор значений. Даже в этом случае вместо него можно использовать разбиение RANGE; но разбиение LIST позволяет нам равномерно распределить строки, назначив каждому разделу соответствующий набор значений.

Содержание, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержание не предварительно проверяется MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/list-partitioning-type/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API