什么是分区表?
在逻辑上为一个表,在物理上存储在多个文件中。所有的数据操作都会通过逻辑表转化成对存储引擎的接口调用,底层的物理表对于SQL层来说完全是一个暗箱操作。
为什么要分区?
将数据按照较粗的粒度存放在不同的表中,将关联的数据存放在一起,如果想批量删除整个分区非常方便。批量删除大数据量的数据可以采用清除整个分区的方式。比如我们后文中会提到的对每年的日志表进行归档处理,如果适用到分区表就很smart。
如何建立分区表?
首先通过SHOW PLUGINS; 确认Mysql服务器是否支持分区表。如果出现下面红框标注出来的内容代表改Mysql服务器支持分区。
分区表的类型
按HASH分区(HASH)
特点
根据MOD(分区键,分区数)的值把数据行存储在表的不同分区中。
数据可以平均的分布在各个分区中。
HASH分区的键值必须是一个INT类型的值,或者通过函数可以转为INT类型。
如何建立HASH分区表
建立如下数据库:
创建HASH分区表:
如果要将非整数类型的数据列做为分区键,则可以通过Mysql函数转换来实现: