分库分表的垂直切分与水平切分看这篇就够了

🤞作者小三是刚刚毕业不久全栈工程师,写的技术文章基本上是学习过程中笔记整理而来,大家看了之后如果喜欢可以给小弟点点赞哦。
🤞例外小弟还有个程序员交流群,欢迎各位大佬来摸鱼哈。点击加群

什么是分库分表

分库分表:在一些数据库大的项目中,随着时间的推移和业务量的增加,数据库里的表中数据就会越来越多,如果单单还使用上面的模式,显然是不够用的。这时候就想到了把一个库里的数据分散到多个库里,并且把存在一个表里的数据分散到多个表里。分库分表的方式有垂直切分,水平切分

分库分表能带来什么样的好处

第一、能解决数据库本身的瓶颈,当连接数过多时,就会出现‘too many connections’的错误,这种访问量 太大或者是数据库设置的最大连接数太小的原因。mysql的默认的最大连接数是100,可以进行修改,而mysql服务允许最大的连接数为16384。数据库分表可以解决单表海量数据的查询性能问题,数据库分库可以解决单台数据库的并发访问压力问题。

第二、解决系统本身的IO、CPU瓶颈。磁盘读写IO瓶颈:热点数据量很多的情况下,尽量使用了数据库本身的缓存,但是依旧有大量IO,导致sql执行速度慢。网络IO瓶颈:请求的数据太多,数据传输量大了,网络带宽就显得不够用了,链路的响应时间就变长了。CPU瓶颈,在进行基础的数据量大单机复制SQL计算的时候,SQL语句执行占用CPU的使用率就会变高,不单只这种原因,也有扫描行数大、锁冲突、锁等待等等原因。

可以通过show processlist; 、show full processlist,发现 CPU 使用率比较高的SQL。常见的对于查询时间长,State 列值是 Sending data,Copying to tmp table,Copying to tmp table on disk,Sorting result,Using filesort 等都是可能

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值