青年数据库学习互助会

第12天-《DBA实战手记》阅读打卡

Image
Image
Image
Image
Image

在数据库架构的世界里,许多人盲目追逐潮流,却深陷认知误区。有人以为分库分表就是解决问题的 “万能钥匙”,有人在CAP理论的抉择中晕头转向,更有人对数据库的拆分与合并毫无头绪。实际上,从CAP理论的权衡取舍,到垂直与水平拆分的精妙解耦,再到数据库合并的战略考量,每一步都藏着颠覆传统认知的关键操作。

01

CAP理论

Image
Image

在分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)三者无法同时满足,需根据业务场景取舍。

#实战策略#

CP 优先:金融、支付场景,选强一致数据库(如CockroachDB),牺牲短暂可用性换数据正确性。

AP 优先:社交、内容平台,选最终一致数据库(如Cassandra),保证用户随时可访问。

02

数据库拆分

Image

随着业务的快速发展,数据量与访问量呈爆炸式增长,传统单一数据库逐渐不堪重负。数据库拆分迫在眉睫,一方面,它能有效解决性能瓶颈问题,避免因数据量过大导致查询缓慢、系统响应延迟;另一方面,当业务逻辑日益复杂时,垂直拆分可将不同功能模块的数据分离,实现业务解耦,提升开发和维护效率。水平拆分则能分散数据存储压力,增强系统的扩展性和可用性,让数据库架构更适配高并发场景,保障系统在海量数据下仍能稳定高效运行 。

Image

垂直拆分

优点:

  • 业务耦合度降低,不同模块独立运维(如电商拆分为用户库、订单库)。

  • 单库数据量减小,索引效率提升,适合初期业务快速迭代。

缺点:

  • 跨库Join复杂,需通过应用层解决(如微服务接口调用)。

  • 单库仍可能面临容量瓶颈(如订单库数据爆炸式增长)。

应用场景:

中小型企业业务模块化初期,或单体应用向微服务转型阶段(如美团早期拆分用户/商家库)。

Image

水平拆分

优点:

  • 突破单机存储限制,支持TB级数据扩展(如按用户ID哈希分库)。

  • 读写负载分散到多个节点,提升并发能力(如支付宝交易库按日期分片)。

缺点:

  • 分布式事务处理复杂(如跨分片转账需2PC 协议)。

分片规则难调整(如新增节点需数据重平衡,可能引发集群抖动)。

应用场景:

互联网头部企业核心业务(如微信红包按用户 ID分片),或数据量预测将超1TB的场景。

03

分库分表不是分布式

Image
Image
Image

分库分表的局限性

核心特征:

手动分片+中间件路由(如MyCat/Sharding-JDBC),本质是“单机数据库的集群化拼接”。

缺点:

  • 缺乏全局协同:无自动分片、故障转移机制,需人工处理节点宕机(如主从切换需手动修改路由规则)。

  • 事务与索引痛点:跨分片事务依赖中间件实现(性能损耗大),全局二级索引维护成本极高。

典型案例:

某电商早期用Sharding-JDBC分库,大促时因分片键设计缺陷导致订单查询超时,最终被迫迁移至分布式数据库。

Image

真正的分布式数据库

自动分片与均衡:如CockroachDB基于 Range自动分片,节点增减时自动迁移数据(无需人工干预)。

全局事务与索引:支持分布式ACID事务(如 Spanner的TrueTime 协议),全局二级索引自动同步。

应用场景:需弹性扩展、高可用、低运维成本的中大型业务(如字节跳动的OLTP场景选用 TiDB)。

04

数据库合并

Image

1. 合并场景

  • 业务整合:企业并购后统一数据平台(如滴滴收购快的后合并司机/乘客库)。

  • 技术升级:从多异构数据库回归统一架构(如某银行将Oracle+MySQL合并为 PostgreSQL集群)。

2. 优点

  • 降低运维复杂度:统一监控、备份策略,减少多数据库适配成本(如 DBA 只需维护一套技术栈)。

  • 提升数据一致性:消除跨库数据冗余(如用户信息在多个库同步失败的问题)。

3. 缺点

  • 迁移风险高:历史数据清洗、ETL过程可能引发业务中断(如某电商合并订单库时出现订单状态丢失)。

  • 性能挑战:合并后单库数据量激增,需提前做好索引优化与读写分离(如加 Redis缓存)。

4. 实施策略

  • 双写过渡:新旧库同时运行,通过 CDC工具(如Canal)同步数据,验证一致性后切流。

  • 分阶段合并:先合并非核心业务库(如日志库),再逐步迁移核心交易库(如支付库)。

决策口诀

Image
Image
  • CAP 选型:金融选CP,流量选AP,网络不稳优先P;

  • 拆分策略:业务先行垂直拆,数据爆炸水平拆,中间件过渡需谨慎;

  • 分布式认知:分库分表是 “体力活”,真分布式靠 “智商税”(自动化能力);

  • 合并原则:非必要不合并,要合并必双写,小步快跑防翻车。