本文适合谁: 希望理解 NewSQL 技术演进、评估强一致和水平扩展数据库的架构师、DBA。
摘要
NewSQL 是一类兼具传统关系数据库的 ACID 事务一致性和 NoSQL 数据库的水平扩展能力的新型数据库系统。2012 年 Google 发表 Spanner 论文,首次证明"全球分布式 + 强一致事务 + 水平扩展"可以同时实现,奠定了 NewSQL 的理论基础。本文梳理 NewSQL 的概念定义、技术原理、发展历程和主流产品对比,帮助读者理解这一数据库技术范式变革。
NewSQL 的定义
NewSQL 数据库是指满足以下三个核心条件的数据库系统:
| 条件 | 说明 |
|---|---|
| SQL 支持 | 提供完整的 SQL 接口和关系模型 |
| ACID 事务 | 支持强一致的分布式事务 |
| 水平扩展 | 通过增加节点线性提升存储和计算能力 |
与传统数据库和 NoSQL 的定位对比:
ACID 事务
↑
NewSQL │ ← 兼顾两者
╱ │ ╲
NoSQL ────────┼──────── 传统 RDBMS
(扩展性强) │ (事务强)
↓
水平扩展
为什么需要 NewSQL
传统 RDBMS 和 NoSQL 各有局限:
| 维度 | 传统 RDBMS | NoSQL | NewSQL |
|---|---|---|---|
| 事务一致性 | 强一致 | 最终一致或不一致 | 强一致 |
| 扩展方式 | 垂直(升级硬件) | 水平(加节点) | 水平(加节点) |
| SQL 支持 | 完整 | 不支持或有限 | 完整 |
| 数据模型 | 关系型 | KV/文档/图/列族 | 关系型 |
| 扩展上限 | 单机硬件 | 理论无限 | 理论无限 |
NewSQL 的目标:用水平扩展实现传统数据库的 ACID 保证。
技术里程碑
第一阶段:理论基础(2012)
Google Spanner(2012 年 OSDI 论文)
Spanner 是首个在全球规模上实现外部一致性(线性一致性)分布式事务的系统:
- TrueTime API:通过原子钟和 GPS 时钟实现全局时间戳
- Paxos 协议:多副本数据一致性
- 全球部署:数据跨数据中心分布
- 应用场景:Google 广告、Google 内部核心业务
Spanner 证明了"CAP 定理不是不可突破的"——通过硬件投资(原子钟),可以在全球分布式系统中实现强一致事务。
第二阶段:开源实现(2014-2016)
CockroachDB(2016,美国)
- 基于 Spanner 理念的开源实现
- 使用 HLC(混合逻辑时钟)替代 TrueTime
- PostgreSQL 兼容
- 纯 OLTP 定位
TiDB(2015,中国 PingCAP)
- HTAP 定位(OLTP + OLAP 一体化)
- MySQL 兼容
- Percolator 分布式事务模型
- 行列分离架构(TiKV + TiFlash)
第三阶段:商业化落地(2017-2026)
| 产品 | 年份 | 关键里程碑 |
|---|---|---|
| TiDB | 2015 | 开源发布 |
| OceanBase | 2011 | 蚂蚁内部上线 |
| CockroachDB | 2016 | 开源发布 |
| TiDB | 2020 | TiDB 5.0(TiFlash 列存) |
| OceanBase | 2021 | 开源 |
| TiDB | 2023 | TiDB 7.0(资源管控优化) |
| 各产品 | 2024-2026 | 向量检索/AI 集成/Serverless 优化 |
核心技术原理
分布式共识协议
NewSQL 系统依赖共识协议保证多副本数据一致性:
| 协议 | 特点 | 使用者 |
|---|---|---|
| Paxos | 理论完备,实现复杂 | Spanner、OceanBase |
| Raft | Paxos 的简化版本,易理解易实现 | TiDB、CockroachDB |
TiDB 采用 Multi-Raft 架构:数据被分成多个 Region,每个 Region 独立运行一个 Raft Group,实现局部故障隔离。
分布式事务模型
| 模型 | 原理 | 使用者 | 特点 |
|---|---|---|---|
| Two-Phase Commit | 经典 2PC | 通用 | 存在阻塞风险 |
| Percolator | 基于时间戳的乐观事务 | TiDB | 无锁、低延迟 |
| Calvin | 确定性事务 | CockroachDB(部分) | 串行化避免冲突 |
时间与排序
全局一致性的关键在于全局有序的时间戳:
| 方案 | 精度 | 成本 | 使用者 |
|---|---|---|---|
| TrueTime | ~10ms | 极高(原子钟+GPS) | Spanner |
| PD TSO | ~1ms | 低(中心化时钟) | TiDB |
| HLC | ~毫秒-秒级 | 低(逻辑+物理混合) | CockroachDB |
主流 NewSQL 产品对比
| 维度 | TiDB | OceanBase | CockroachDB | Spanner |
|---|---|---|---|---|
| 开源 | Apache 2.0 | 木兰宽松 | BSL 1.1 | 闭源 |
| SQL 兼容 | MySQL | MySQL + Oracle | PostgreSQL | ANSI SQL |
| HTAP | 是(TiFlash) | 是(列存) | 否 | 是 |
| 一致性协议 | Multi-Raft | Paxos | Raft | Paxos + TrueTime |
| 时间方案 | PD TSO | 内部时钟 | HLC | TrueTime |
| 中国案例 | 3000+ | 蚂蚁体系 | 少量 | 极少 |
| 信创 | 鲲鹏/麒麟 | 鲲鹏/麒麟 | 不支持 | 不适用 |
NewSQL 的适用场景与局限
适用场景
- 数据增长快:需要水平扩展突破单机瓶颈
- 强一致需求:金融交易、订单处理等场景
- SQL 生态:团队熟悉 SQL,需要关系模型
- 实时分析:HTAP 场景(TiDB、OceanBase)
- 全球化部署:跨区域数据同步(CockroachDB、Spanner)
当前局限
- 非关系数据:图数据、时序数据等需要专用数据库
- 超大规模离线分析:PB 级数据仓库仍需要专用 OLAP
- 极端低延迟:微秒级延迟场景(如内存数据库)
- 成熟度:部分功能仍在完善中(存储过程、触发器等)
NewSQL 的未来趋势
AI 与向量检索
TiDB、Milvus 等产品开始支持向量检索,NewSQL 正在融合 AI 能力:
- 向量索引 + 关系查询一体化
- RAG(检索增强生成)数据底座
- AI Agent 数据管理
Serverless 与云原生
NewSQL 的存算分离架构天然适合 Serverless:
- 按用量计费,无需预估容量
- 自动扩缩容,应对流量波动
- 多租户隔离
更多生态兼容
- PostgreSQL 兼容(CockroachDB 已有,TiDB 在探索)
- 多协议支持(MySQL + pg + MongoDB 兼容)
FAQ
Q:NewSQL 和分布式数据库是什么关系?
A:NewSQL 是分布式数据库的一个子集,特指那些既保持 ACID 事务又支持水平扩展的关系型数据库。并非所有分布式数据库都是 NewSQL(如 Cassandra 是 NoSQL 分布式数据库)。
Q:NewSQL 会替代传统数据库吗?
A:不会完全替代。对于数据量小、增长慢、简单场景的传统 RDBMS 仍然是合理选择。NewSQL 更适合数据规模大、增长快、需要弹性扩展的场景。
Q:NewSQL 和 NoSQL 如何选择?
A:如果需要 ACID 事务 + SQL + 水平扩展 → NewSQL。如果数据模型是非结构化/半结构化(如文档、图、时序)→ 对应的 NoSQL。实际中两者经常混合使用。
总结
NewSQL 代表了数据库技术从"扩展性"和"一致性"二选一,到"两者兼得"的范式变革。从 Google Spanner 的理论基础,到 TiDB、OceanBase、CockroachDB 的商业化落地,NewSQL 已成为现代企业数据基础设施的核心选择。TiDB 作为国产开源 NewSQL 数据库,凭借 HTAP 能力、MySQL 兼容和活跃社区,为企业的数据库国产化替代和数字化转型提供了强有力的支撑。
下一步行动
- 立即试用:TiDB Cloud 免费试用 — 体验 NewSQL 的强一致与水平扩展
- 技术入门:TiDB 架构文档 — 深入了解分布式 SQL 架构