分布式数据库概述:定义与分类
0. 引言
分布式数据库是数据库与分布式系统理论结合的产物。理解分布式数据库,需要先认识其核心特征(数据分片与数据同步),再从发展脉络把握分类与适用场景。本文建立分布式数据库的整体认知框架,为后续各章(分片复制、一致性、存储引擎、事务恢复、协调机制)打下基础。
1. 基本概念与核心特征
分布式数据库定义为:由多个独立实体组成、彼此通过网络互联的数据库。与集中式数据库相比,核心差异可归纳为两点:
| 核心特征 | 机制 | 解决的问题 |
|---|---|---|
| 数据分片 | 将数据分散到多个节点 | 突破单机容量限制,水平扩展 |
| 数据同步 | 多副本/一致性协议保持数据一致 | 恢复"用起来像单库"的一致性体验 |
1.1 数据分片
分片是分布式数据库的技术创新,可突破单机数据库的容量限制:
- 水平分片:按行分割,数据被切割为数据组,分散到不同节点(如 TiDB 的 Region);
- 垂直分片:按列切割,一个表的结构(Schema)被拆分为多个小结构。
1.2 数据同步
同步是分布式数据库的底线。数据库理论传统上建立在单机基础上,引入分布式后一致性原则被打破,必须通过同步技术恢复一致性——同步背后的推动力是对"一致性"的追求(复制、多数派协议、分布式事务详见后续章节)。
2. 发展脉络
图表渲染中…
2.1 商业数据库:Oracle RAC
- 基于**共享存储(Shared-Disk)**架构:多个计算节点共享同一份底层存储;
- 本质是向上扩展(Scale-Up):扩展能力受限于共享存储吞吐,成本与运维门槛高;
- 意义:分布式数据库的"前传",验证了多节点协同的可行性。
2.2 分布式数据库的兴起
随着数据规模与并发压力快速增长,基于分片 + 多副本的分布式架构成为主流,催生 NoSQL、NewSQL 等不同路线(详见分类)。
3. 分类体系
3.1 按架构路线分类
| 类型 | 代表产品 | 特点 |
|---|---|---|
| 关系型分布式数据库 | TiDB、OceanBase | 兼容 SQL,支持事务与强一致性 |
| NoSQL | Cassandra、MongoDB | 水平扩展能力强,弱化 ACID 约束 |
| NewSQL | Spanner、CockroachDB | 兼具 SQL 体验与水平扩展能力 |
3.2 NoSQL 按数据模型分类
| 模型 | 代表 | 特点 |
|---|---|---|
| 键值型 | Redis | 以 Key 寻址 Value,读写性能极高 |
| 文档型 | MongoDB | JSON/BSON 文档存储,模式灵活 |
| 列族型 | Cassandra、HBase | 按列族存储,适合宽表与海量写入 |
| 图类型 | Neo4j | 节点与边表达关系,擅长关联查询 |
4. 相关概念辨析
| 概念 | 说明 |
|---|---|
| NewSQL | 兼顾 SQL 接口与水平扩展能力的数据库(Spanner、TiDB) |
| 分布式 SQL | 将 SQL 语义下推到分布式存储层的架构 |
| HTAP | 混合事务/分析处理:同一系统同时支持 OLTP 与 OLAP(TiDB、OceanBase 4.x) |
| SQL(关系型) | 以表组织数据,行/列表达实体与关系,ACID 强事务 |
| NoSQL | 非关系型数据库统称,多模型、弱事务、天然水平扩展 |
SQL vs NoSQL 特征对比:SQL 强约束 Schema、完整 ACID、垂直扩展为主;NoSQL 弱约束、最终一致为主、天然水平扩展。两者并非替代关系,而是场景互补(详见《NoSQL 数据库有哪些典型应用?》)。
5. 与 CAP 的关系
分布式数据库的设计本质上是在**一致性(C)、可用性(A)、分区容错性(P)**之间权衡(详见《如何证明分布式系统的 CAP 理论?》):
- CP 路线:TiDB、OceanBase(多数派协议,分区时少数派拒绝服务);
- AP 路线:Cassandra、DynamoDB(最终一致,分区时持续可用);
- 数据分片与数据同步的实现,正是 CAP 权衡在存储层的具体落地。
6. 小结
- 分布式数据库 = **数据分片(扩展) + 数据同步(一致)**两大核心;
- 发展脉络:共享存储(RAC)→ NoSQL → NewSQL → 云原生;
- 分类维度:关系型/NoSQL/NewSQL,NoSQL 再分 KV/文档/列族/图;
- 一切设计都是 CAP 权衡的落地,后续章节逐一展开。
下一章讲解数据分布:分片算法与多副本复制机制。