Типы разбиения RANGE COLUMNS и LIST COLUMNS
RANGE COLUMNS и LIST COLUMNS являются вариантами соответственно RANGE и LIST. При этих типах разбиения не используется одно выражение разбиения; вместо этого принимается список одного или нескольких столбцов. Применяются следующие правила:
- Список может содержать один или несколько столбцов.
- Столбцы могут быть любого типа целого, строкового, DATE и DATETIME.
- Разрешены только столбцы без выражений.
Все указанные столбцы сравниваются со значениями, чтобы определить, какой раздел должен содержать конкретную строку. Подробности см. ниже.
Синтаксис
Последней частью оператора CREATE TABLE может быть определение разделов новой таблицы. В случае разбиения RANGE COLUMNS синтаксис следующий:
PARTITION BY RANGE COLUMNS (col1, col2, ...) ( PARTITION partition_name VALUES LESS THAN (value1, value2, ...), [ PARTITION partition_name VALUES LESS THAN (value1, value2, ...), ... ] )
Синтаксис для LIST COLUMNS следующий:
PARTITION BY LIST COLUMNS (partitioning_expression)
(
PARTITION partition_name VALUES IN (value1, value2, ...),
[ PARTITION partition_name VALUES IN (value1, value2, ...), ... ]
[ PARTITION partititon_name DEFAULT ]
)
partition_name — это имя раздела.
Сравнения
Для определения того, какой раздел должен содержать строку, все указанные столбцы сравниваются с каждым определением раздела.
При LIST COLUMNS строка соответствует разделу, если все значения строки совпадают с указанными значениями. Максимум одна строка может соответствовать строке.
При RANGE COLUMNS строка соответствует разделу, если все значения строки меньше указанных значений. Будет использован первый раздел, который соответствует значениям строки.
DEFAULT раздел собирает все записи, которые не подходят другим разделам. Только один DEFAULT раздел разрешен. Эта опция добавлена в MariaDB 10.2.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/range-columns-and-list-columns-partitioning-types/