MySQL的分区方法

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分区

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值