mysql分区和分表的区别以及应用场景

一,什么是mysql分表

什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,是多个的物理表

实现方法

1,手动物理分表,

 优点:业务简单的情况下实现比较简单   

 缺点: 比较low你得用代码控制去哪张表去增删改查,排序分页问题较多

       (当然,你写出来像sharding-sphere这样框代码就不low了,哈哈)


2,利用merge存储引擎来实现分表 

  Mysql MERGE引擎简介: https://blog.csdn.net/qmhball/article/details/7499432  实现分表:https://www.cnblogs.com/gxz-sw/p/6707504.html

   优点:利用mysql自带功能逻辑,实现简单,对实现日志表,报表无修改数据分表较好   

   缺点:库表只能用merge存储,数据插入只能插到最后一张表


3,利用mycat,shardingsphere 等中间件实现分表   

 mycat分表介绍 https://blog.csdn.net/zhaofuqiangmycomm/article/details/110241718

优点:中间件对代码是透明的,数据操作代码基本无需任何修改,实现功能强大,能解较多务场景需求 

缺点:需要研究这些中间件,前期运维成本稍高,哈哈,其实这也算不上什么缺点


分表的好处:单表的并发能力提高了,磁盘I/O性能也提高了。并发能力为什么提高了呢,

因为查寻一次所花的时间变短了,如果出现高并发的话,总表可以根据不同 的查询,

将并发压力分到不同的小表里面。磁盘I/O性能怎么搞高了呢,本来一个非常大的.MYD文件现在也分摊到各个小表的.MYD中去了。


二 ,什么是mysql分区

什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上,其实还是一张物理表

分区的实现方法目前我查到的资料只有mysql自己实现的分区表。mycat分片(分表,分库)的概念其实都是物理分表,是多个物理报表

mysql分区的规则有 RANGE分区,LIST分区,HASH分区,KEY分区,子分区

按日期分表范围 https://blog.csdn.net/zhaofuqiangmycomm/article/details/111580829

分区表的好处:  对程序来说是透明的,分区后无需对代码做调整,能提高读写能力,

刚看到个帖子说分区不能提高效率的就是在放屁,mysql搞出来的东西没任何作用?唯一的作用让你在那放屁喷他?


三,总结:

1,分区和分表的测重点不同,分表重点是存取数据时,如何提高mysql并发能力上;而分区呢,如何突破磁盘的读写能力,从而达到提高mysql性能的目的。

2,都能提高mysql的性高,在高并发状态下都有一个良好的表现。

3,分表和分区不矛盾,可以相互配合的,对于那些大访问量,并且表数据比较多的表,我们可以采取分表和分区结合的方式(如果merge这种分表方式,不能和分区配合的话,可以用其他的分表试),访问量不大,但是表数据很多的表,我们可以采取分区的方式等。


四,扩展:什么是mysql分片

 分片就是分库,分表统称,分库也是数据分片,分表也是数据分片

参考:https://www.cnblogs.com/langtianya/p/4997768.html

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值