标签:margin 不同 大数据 用户 法则 strong 分区表 适用于 多列
P226)MySQL分区的优点主要包括一下4个方面:
分区类型:
P230)range分区功能特别适用于以下两种情况:
P231)List分区是建立离散的值列表告诉数据库特定的值属于哪个分区,list分区在很多方面类似range分区,区别在list分区是从属于一个枚举列表的值的集合,range分区是从属于一个连续区间值的集合。
如果试图插入的列值(或者分区表达式的返回值)不包含分区值列表时,那么insert操作将失败并报错。将要匹配的任何值都必须在值列表中找得到。
P232)Columns分区又细分为range columns分区和list columns分区,这两个分区都支持整数、日期时间、字符串三大数据类型。
Columns分区还支持多列分区。range columns分区建的比较是基于元祖(多列时)的比较,也就是基于字段组的比较。
P235)Hash分区主要用来分散热点读,确保数据在预先确定个数的分区中尽可能平均分布。对一个表执行Hash分区时,MySQL会对分区键应用一个散列函数,以此确保数据应当放在N个分区中的哪个分区中。
MySQL支持两种Hash分区,常规Hash分区和线性Hash分区(Linear Hash分区)。常规Hash分区使用的是取模算法,线性Hash分区使用的是一个线性的2的幂的运算法则。
P237)常规Hash分区方式看上去挺不错的,通过取模的方式来使数据尽可能平均分布在每个分区中,让每个分区管理的数据都减少了,提高了查询的效率;可是当我们需要增加分区或者合并分区的时候,问题就出现了。假设原来是5个常规Hash分区,现在需要新增一个常规Hash分区,那么由于取模算法发生了改变,使得原来5个分区中的数据大部分都需要计算重新分区。常规Hash在分区管理上带来的代价太大了,不适合需要灵活变分区的需求。为了降低分区管理上的代价,MySQL提供了线性Hash分区,分区函数是一个线性的2的幂运算法则。
P238)线性Hash分区的优点是,在分区维护(包含增加、删除、合并、拆分分区)时,MySQL能够处理得更加迅速;缺点是,对比常规Hash分区(取模)的时候,线性Hash各个分区之间数据的分布不大均衡。
P239)Key分区非常类似于Hash分区,只不过Hash分区允许使用用户自定义的表达式,而Key分区不允许使用用户自定义的表达式,需要使用MySQL服务器提供的Hash函数;同时Hash分区只支持整数分区,而Key分区支持使用除BLOB和Text类型外其他类型的列作为分区键。
标签:margin 不同 大数据 用户 法则 strong 分区表 适用于 多列
原文地址:http://www.cnblogs.com/ITStruggler/p/7137046.html