第 6 章 数据库架构与高可用


第 6 章 · 数据库架构与高可用

章节摘要:单机优化到顶之后,性能与可用性问题的解法在架构层。本章四节层层向上:先理解事务与锁的并发机理(这是一切高可用讨论的地基),再搭起主从复制实现读写分离,数据量顶不住时上分库分表,最后用集群与负载均衡保障"单点故障不致停服"。评审会这轮的议题从"这条 SQL 多快"升级为"这套系统扛不扛得住双倍流量与一台机器宕机"。

学习目标

阅读完本章,你应当能够:

  1. 解释 ACID 各自依赖的机制(redo、undo、锁、MVCC),不再把隔离级别和锁混为一谈;
  2. 根据隔离级别的差异预测脏读、不可重复读、幻读的出现条件,并说明 InnoDB 默认 RR 下如何用间隙锁抑制幻读;
  3. 讲清主从复制的 binlog 链路,估算复制延迟的来源并设计读写分离的读一致性策略;
  4. 判断业务是否真的需要分库分表,选对垂直或水平切分键,说出跨分片查询的代价;
  5. 对比主从切换、MGR、云端高可用三种方案,给出与团队运维能力匹配的选择;
  6. 在容量评审上回答"数据量再涨十倍,架构哪一层先倒"。

核心概念速览

架构层的所有问题都源于两堵墙:并发墙(读写争抢同一份数据)与容量墙(单机存不下、扛不住)。锁与 MVCC 拆解并发墙,复制与拆分翻越容量墙,高可用方案负责"墙塌了还有人站岗"。

金句:单机是性能问题,架构是生存问题——前者影响快不快,后者决定在不在。

子章节导航

6.1 事务与并发控制:ACID 四性的实现机理,四种隔离级别的现象对照,行锁、间隙锁与 MVCC 的分工。本节是理解一切"数据为什么对不上"的钥匙。

6.2 主从复制与读写分离:binlog 的三种格式与主从复制链路,延迟的成因与读一致性策略(写后读问题),读写分离的接入层实现。

6.3 分库分表:垂直与水平切分的决策依据,分片键选择、路由算法(哈希与范围)、跨分片查询与全局 ID 这两大衍生难题。

6.4 高可用与负载均衡:从主从手工切换到 MGR 自动选主,连接层负载均衡(代理型与客户端型),以及容灾的层级思考。

子章节之间的逻辑关系

四节是能力叠加:6.1 提供并发正确性的理论底座,6.2 用复制翻越第一道容量与可用性门槛,6.3 在复制不够时拆分数据,6.4 把前面所有组件编排成"坏一台机器业务无感"的体系。反过来讲,6.2 到 6.4 的每一层方案都依赖你对 6.1 的理解——不懂锁与隔离级别,读写分离后的一致性坑你都看不出是坑。

+----------------------+ | 6.1 事务与并发控制 | 地基:ACID 与 MVCC +---------+------------+ v +----------------------+ | 6.2 主从复制 | 翻墙:读扩容与容灾起点 +---------+------------+ v +----------------------+ | 6.3 分库分表 | 拆分:写容量突破 +---------+------------+ v +----------------------+ | 6.4 高可用与负载均衡 | 编排:故障自动接管 +----------------------+ ​

前置知识与后续延伸

需要第 3 章 3.3 的事务语法(COMMIT/ROLLBACK)与第 5 章的瓶颈诊断思路(知道什么指标说明单机到顶了)。本章之后,第 7 章的备份、监控与安全是高可用体系的运维面:复制要靠备份兜底,切换要靠监控触发,权限是安全的地基。架构不是一步到位的规划,而是随数据量逐级演进的决策链——每一级都要问"现在的瓶颈还在不在单机"。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U