MySQL 键分区
键分区将表中的数据按照特定的键值进行分区。在键分区中,每个分区都包含相同键值的数据,不同键值的数据则存储在不同的分区中。
键分区和哈希分区很像,但有区别:
- 键分区支持除 text 和 blob 类型之外的所有数据类型的列,而哈希分区只支持数字类型的列;
- 键分区不允许使用用户自定义的表达式进行分区,而是使用系统提供的哈希函数进行分区。
当表中存在主键或唯一键时,如果创建键分区时没有指定列,则系统默认会选择主键列作为分区列;如果不存在主键列,则会选择非空的唯一键列作为分区列。
提示
唯一列作为分区列时,唯一列不能为 null
。
mysql
create table tb_key (
id int,
var char(32)
)
partition by key(var)
partitions 10;
1
2
3
4
5
6
2
3
4
5
6