数据库(一):分布式数据库
定义
分布式数据库(Distributed Database) 是指:
数据分布在多个物理位置,但对用户透明,表现为一个统一逻辑数据库的系统。
结构模式(三层模式扩展)
| 层次 | 作用 | 对应实体 | 
|---|---|---|
| 用户层 | 提供统一视图,屏蔽底层节点分布 | 前端应用、中间件 | 
| 全局模式 | 系统级逻辑结构定义,数据如何分布与复制 | 分布式数据库中间件,如TiDB、OceanBase | 
| 局部模式 | 各个子系统或节点的具体逻辑结构定义 | 每个节点的局部数据库 | 
| 物理模式 | 各节点的实际数据文件和存储方式 | 存储引擎(如RocksDB、InnoDB) | 
核心技术与模式分类
数据分片(Sharding)
定义:将数据按某种规则划分到不同节点上。
- 水平分片(Horizontal Partitioning): 
- 按行划分,例如按用户ID区间划分;
 - 常见于用户量大时。
 
 - 垂直分片(Vertical Partitioning): 
- 按列划分,例如将用户表的基本信息和敏感信息分开放;
 - 常见于字段多、模块职责分离时。
 
 - 混合分片(Hybrid Partitioning): 
- 同时按行列进行分片。
 
 
常考点:“将用户表按地区分布于不同节点,这是哪种分片?” 答:水平分片
数据复制(Replication)
定义:将同一份数据拷贝存储于多个节点。
- 主从复制(Master-Slave) 
- 一个主节点写,多从节点读;
 - 优点:读性能高;
 - 缺点:写入瓶颈、主节点故障影响大。
 
 - 多主复制(Multi-Master) 
- 多个节点可以同时读写;
 - 优点:高可用;
 - 缺点:一致性难以维护。
 
 - 同步复制 / 异步复制 
- 同步:强一致性,牺牲写性能;
 - 异步:高性能,但存在数据丢失风险。
 
 
一致性模型(Consistency Models)
- 强一致性(Strong Consistency): 
- 所有节点读取到的都是最新数据;
 - 通常需要 Paxos、Raft 等共识协议支持。
 
 - 最终一致性(Eventual Consistency): 
- 系统经过一段时间后达到一致;
 - 常见于高可用系统(如 DNS、Cassandra)。
 
 - 因果一致性(Causal Consistency): 
- 保证操作的因果关系顺序;
 - 强于最终一致性,弱于强一致性。
 
 
CAP 理论(重点)
| 元素 | 含义 | 
|---|---|
| C | 一致性(Consistency) | 
| A | 可用性(Availability) | 
| P | 分区容忍性(Partition Tolerance) | 
CAP 不可同时满足三者,只能同时满足其中两项:
- CP:一致性 + 分区容忍(如 HBase)
 - AP:可用性 + 分区容忍(如 Cassandra)
 - CA:理论上只能用于单机数据库
 
典型架构模式
| 模式类型 | 描述 | 示例系统 | 
|---|---|---|
| 同构集中式 | 所有节点结构相同、集中部署 | MySQL 主从集群 | 
| 同构分布式 | 节点结构相同,分布在不同位置 | OceanBase、TiDB | 
| 异构分布式 | 各节点可能使用不同数据库系统 | 中间件统一封装不同数据库 | 
| 混合云分布式 | 云 + 本地的混合数据库部署模式 | 云数据库 + 本地缓存 | 
查询处理与优化机制
- 全局查询优化器:分析跨节点的SQL执行计划;
 - 数据定位服务:确定某个数据在哪个分片或节点;
 - 两阶段提交(2PC)/三阶段提交(3PC):保障分布式事务一致性;
 - 分布式事务协调器(如 XA / TCC / SAGA);
 
