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

技术教程 2026-01-09 17:31:14 浏览

哈喽大家好呀!我是小三。今天来讲分库分表:)

什么是分库分表

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

分库分表的方式有垂直切分,水平切分」

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

第一、能解决数据库本身的瓶颈,当连接数过多时,就会出现‘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>

Mysql数据库垂直分库讲解

垂直分库是针对的是一个系统中不同业务进行拆分的,数据库的连接资源比较宝贵并且单机的处理能力也是有限的。在没拆分之前全部都是落到单一的库上的,这时候单库的处理能力有瓶颈,与之还有的是磁盘的空间、内存、tps等限制。拆分之后,避免不同库竞争同一个物理机上的CPU、内存/网络IO、磁盘,所以在高并发的场景下,垂直分库一定程度上能够突破IO、连接数及单机硬件资源的瓶颈。垂直分库可以更好的解决业务层面的耦合,业务清晰并且方便管理和维护。一般从单体项目升级改造成为微服务项目的话,那就是垂直分库。

分库分表

Mysql数据库水平分表

水平分表都是大表拆小表,垂直分表是按表结构进行拆分,水平分表是按数据结构进行拆分。把一个表的数据分到一个数据库的多张表里,每个表只有这个表的部分数据,其核心就是把一个大表分割成多个小表,每一个的结构是一样的,数据不一样,全部表的数据合起来就是全部的数据,针对数据量巨大的单张表(比如订单表)照某种规则(RANGE,hasH取模等),切分到多张表里面去。但是这些表还是在同一个库中,所以单数据库操作还是有IO瓶颈,主要是解决单表数据量过大的问题。减少锁表时间,没分表前,如果是DDL(create/alter/add等)语句,当需要添加一列的时候mysql会锁表,期间所有的读写操作只能等待。

Mysql数据库水平分库讲解

把同个表的数据按照一定的规则分到不同的数据库里,数据库在不同的服务器上,水平分库就是把不同的表拆分到不同的数据库里,它是对数据的行拆分,不会影响表的结构。每个库的结构都一样,但是每个库的数据都不一样,没有交集,库的并集就是全量数据了。但水平分库的粒度会比水平分表更大。

分库分表总结:

垂直角度(表结构不一样)

垂直分表: 将一个表字段拆分成多个表,每个表存储部分字段。好处是避免IO时锁表的次数,分离热点字段和非热点字段,避免大字段IO导致性能下降。原则是业务经常组合查询的字段一个表;不常用字段一个表;text、bLOB类型字段作为附属表

垂直分库:根据业务将表分类放到不同的数据库服务器上,好处是避免表之间竞争同个物理机的资源,比如CPU/内存/硬盘/网络IO,原则是根据业务相关性进行划分,领域模型,微服务划分一般就是垂直分库。

水平角度(表结构一样)

水平分库:把同个表的数据按照一定规则分到不同的数据库中,数据库在不同的服务器上。好处:是多个数据库,降低了系统的IO和CPU压力。原则是选择合适的分片键和分片策略,和业务场景配合;避免数据热点和访问不均衡、避免二次扩容难度大

水平分表:同个数据库内,把一个表的数据按照一定规则拆分到多个表中,对数据进行拆分,不影响表结构。好处是单个表的数据量少了,业务SQL执行效率高,降低了系统的IO和CPU压力。原则是选择合适的分片键和分片策略,和业务场景配合;避免数据热点和访问不均衡、避免二次扩容难度大

原文链接:

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐