• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

小贝_mysql分区理论学习_MySQL

mysql 搞代码 4年前 (2022-01-09) 19次浏览 已收录 0个评论
文章目录[隐藏]

mysql分区

简要:

一、为什么需要mysql分区

二、mysql分区的类型

三、mysql分区技术对比

一、为什么需要mysql分区

1、首先,业务数据增大时,必然会影响数据操作。通常针对大数据,有如下优化方法:

a、大表拆小表

b、sql语句优化

2、不足:

a、sql语句优化可以通过增加索引等来调整,但是随着数据量增大时将会导致索引的维护代价增大

b、大表拆分小表可以在细分为垂直or水平分表。但是需要实现逻辑操作。即选择那张表

3、总结: 针对大数据,添加索引会导致索引文件大以及维护索引代价大,拆分表,就需要实现逻辑操作。因此,这里需要用到mysql分区。分区其实从本质上也是实现了拆分小表的做法。是基于物理层面上进行拆分成小表,无须实现逻辑操作,对用户而言是透明的。

二、mysql分区类型

1、range分区: 基于给定连续区间的列值,把多行分配给分区

2、list分区: 类似于按range分区,区别在于list分区是基于列值匹配一个离散值集合中本文来源gao@!dai!ma.com搞$$代^@码网*的某个值来进行选择

3、hash分区: 基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算,这个函数可以包含mysql中有效的、产生非负整数值得任何表达式

4、key分区: 类似于hash分区,区别在于key分区只支持计算一列或多列,且mysql服务器提供自身的哈希函数

总结: 使用优先级 range>list>hash>key

hash一般用于测试分区

三、mysql分区技术对比

分区名称

优点

缺点

共性

range

适合与日期类型,支持复合分区

有限的分区

一般只针对某一列

list

适合与有固定取值的列,支持复合分区

有限的分区,插入记录在这一列的值不在list中,则数据丢失

一般只针对某一列

hash

线性hash使得增加、删除和合并分区更快捷

线性hash的数据分布不均匀,而一般hash的数据分布均匀

一般只针对某一列

key

列可以为字符串等其它非int类型

效率较之前的低,因为函数为复杂的函数如md5或sha函数

一般只针对某一列


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:小贝_mysql分区理论学习_MySQL

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址