赞
踩
1、 概念
表分区是将一个大表,根据条件分割成若干小表,主要目的为了让特定的查询操作减少响应时间,同时对于应用来讲分区完全透明。方式:水平分区(通过表的某个属性作为分割的条件)和垂直分区(对表的垂直划分来减少目标表的宽度,是某些特定列划分到特定的分区)
2、 分区方式
2.1 range分区
range分区使用values less than 操作符来进行定义,把连续且不相互重叠的字段分配给分区。如某个表有一列为薪资salary,查询会按照某个等级来进行查询,比如高于多少低于多少一个等级,这时就可以使用range进行分区。
Maxvalue表示最大的值,这里注意区间必须包含一个准确的区间,否则会报错。
2.2 list 分区
类似于range分区,主要区别在于list分区中每个分区的定义和选择是基于某列的值从属于一个集合,range分区是从属于一个连续区间值的集合,list例子:某个列的值在集合{1,2,3,4}中的某个值,可以使用list分区
2.3 hash分区
hash分区是基于用户定义的表达式的返回值进行选择的分区,该表达式使用将要插入到表中的这些列的列值进行计算,确保数据在预先确定数目的分区中平均分布。
这里的hash里面的内容为一个表达式,根据time的什么内容形成hash值。
2.4 线性hash分区
线性hash分区和hash分区主要的区别在于,线性hash功能使用的一个线性的2的幂运算法则,而hash分区使用的是hash函数的模板
线性hash类似于hash分区,关键字:linear hash
2.5 key分区
类似于hash分区,区别在于key分区只支持计算一列或 多列,且MySQL服务器提供其自身的hash函数,这些函数是基于与password()一样的运算法则。
关键字:key
2.6 复合分区
分区表中的每个分区还可以进行再次分割,子分区既可以使用hash分区,也可以使用key分区
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。