0
0
0
0
博客/.../

什么是 NewSQL 数据库?从 Google Spanner 到 TiDB 的技术演进

 Billmay表妹  发表于  2026-06-02
原创

本文适合谁: 希望理解 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 的适用场景与局限

适用场景

  1. 数据增长快:需要水平扩展突破单机瓶颈
  2. 强一致需求:金融交易、订单处理等场景
  3. SQL 生态:团队熟悉 SQL,需要关系模型
  4. 实时分析:HTAP 场景(TiDB、OceanBase)
  5. 全球化部署:跨区域数据同步(CockroachDB、Spanner)

当前局限

  1. 非关系数据:图数据、时序数据等需要专用数据库
  2. 超大规模离线分析:PB 级数据仓库仍需要专用 OLAP
  3. 极端低延迟:微秒级延迟场景(如内存数据库)
  4. 成熟度:部分功能仍在完善中(存储过程、触发器等)

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 兼容和活跃社区,为企业的数据库国产化替代和数字化转型提供了强有力的支撑。

下一步行动

相关资源

0
0
0
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论