分区就是把一个数据表的文件和索引分散存储在不同的物理文件中。
对于分区表来说,同一个分区表的所有分区必须使用同一个存储引擎,即同一个表上,不能对不同的分区用不同的存储引擎;但是,可以在同一个MySQL服务器中,甚至同一个数据库中,对不同的分区表使用不同的存储引擎。
MySQL支持的分区类型包括Range、List、Hash、Key,其中Range比较常用:
RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。
LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。
HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。
KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL服务器提供其自身的哈希函数。必须有一列或多列包含整数值。
在MySQL中,数据库和表对应与数据目录中的目录和文件。所以,操作系统的大小写敏感性决定数据库和表命名的大小写敏感性。这就意味着数据库和表名在Windows中是大小写不敏感的,而在Unix和Linux中大小写敏感。但是需要注意的是,分区的名字是不区分大小写的。