表分区是将一个表的数据按照一定规则水平划分成不同的逻辑块,并分别进行物理存储,这个规则就叫做分区函数,可以有不同的分区规则。通过show plugins语句查看当前MySQL是否支持表分区功能。MySQL5.7社区版本的表分区功能是默认开启的。但当表中含有主键或唯一键时,则每个被用作分区函数的字段必须是表中唯一键和主键的全部或一部分,否则就无法创建分区表。
表分区的主要优势是:
1.可以在一个表里存储更多的数据,突破磁盘限制或者文件系统限制;
2.对于从表里将过期或历史数据移除在表分区很容易实现,只要将对应的分区移除即可;
3.对某些查询和修改语句来说,可自动将数据范围缩小到一个或几个表分区上,优化语句执行效率;还可通过显示指定表分区来执行语句。
表分区类型有:
1.RANGE表分区:范围表分区,按照一定的范围值来确定每个分区包含的数据;
2.LIST表分区:列表表分区,按照一个一个确定的值来确定每个分区包含的数据;
3.HASH表分区:哈希表分区,按照一个自定义的函数返回值来确定每个分区包含的数据;
4.KEY表分区 :key表分区,与哈希表分区类似,只是用MySQL自己的HASH函数来确定每个分区包含的数据。
有疑问加站长微信联系(非本文作者)