分区是表的一种设计模式。正确的分区可以极大提高数据库的查询效率。
分区不是在存储引擎层面实现的,所以并不是Innodb独有的。mysql仅支持水平分区(将同一表中的不同行的记录分配到不同的物理文件中),并且是局部分区索引,一个区中既存放数据又存放索引。
全局分区: 数据存放在各个分区中,但是所有数据的索引放在一个对象中;(mysql 暂不支持)
mysql支持一下的分区方法:
- RANGE分区 (指定一个连续范围): 行数据基于属于一个给定连续区间的列值放入分区;
- LIST分区(指定一个离散范围): 面向的是离散的值 ;
- HASH分区(通过自定义函数的返回值来进行分区,返回值不能是负值)
- KEY分区(根据mysql提供的散列函数进行分区)
如果表中存在主键或唯一索引,分区列必须是唯一索引的一部分。
唯一索引可以是null值,并且只要求分区列是唯一索引的一个组成部分, 不需要整个唯一索引列都是分区列;
-- 具体章节参考 : https://www.cnblogs.com/coloz/p/13792671.html <4.8章节>