分库分表之 垂直拆分与水平拆分

本文探讨了数据库拆分的两种主要策略:垂直拆分和水平拆分。垂直拆分通过将数据库按模块划分,降低了单库压力,增强了业务清晰度和解耦性,但增加了系统复杂性,处理跨库事务也更为复杂。而水平拆分针对大数据量的表,解决了单表过大问题,但操作复杂,事务管理和多表查询难度增大。这两种方法各有优势和挑战,需根据具体业务需求选择适用的拆分策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

垂直拆分

垂直拆分 : 把一个数据库, 拆分为多个数据库. 按不同的模块拆分.
原来是一个模块 , 公用一个数据库的资源, 垂直拆分后, 各个模块的项目竞争的资源, 不存在了 .

优点:

  • 减轻了原有单库的压力, 提高了每个数据库的分摊数据, 给每个库的 CPU 内存, 网络压力变小了
  • 业务更加清晰
  • 解耦
  • 系统扩展更加容易了

缺点:

  • 系统复杂性增加了
  • 多个数据库的联表查询, rpc调用, 可能有超时之类的问题 .
  • 事务需要分布式事务处理
  • 单表的数据量很大, 垂直拆分也无法解决.

水平拆分

上面介绍的垂直拆分的问题是, 某个库中的某个表也可能在业务的发展中, 数据量变得很大, 从而导致查询超时, rpc调用 服务雪崩等.

水平分库分表
对数据库进行拆分, 对数据库中的表进行拆分.

水平拆分的问题:

  1. 水平拆分过程比较复杂
  2. 事务处理变得复杂
  3. 多库多表联查复杂度大
  4. 水平拆分后, 多个数据库源, 单表的数据会分散到不同的数据源中.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值