首页/数据/NoSQL 速查/NewSQL 与分布式 SQL 的定位
选型与架构50 条

NewSQL 与分布式 SQL 的定位

NewSQL 用共识协议把单机数据库的强一致能力扩展到多节点:TiDB、OceanBase、CockroachDB、YugabyteDB 等提供 SQL 接口与水平扩展,部分还带列存副本做 HTAP。它适合单机容量与写入到瓶颈、又需要事务与 SQL 的场景。

NoSQL 速查数据更新于 2026-10-13

NewSQL 的定位

NewSQL 用共识协议把单机数据库的强一致能力扩展到多节点:SQL 接口、事务语义、水平扩展三者兼得,代表产品有 TiDB、OceanBase、CockroachDB、YugabyteDB,部分还带列存副本支撑 HTAP。它解决的是「单机容量或写入到瓶颈,但业务又离不开 SQL 与事务」这一类问题,代价是跨节点写入延迟高于单机。

基本信息

TiDBSQL 层 + TiKV 分布式 KV(Raft)+ PD 调度,TiFlash 提供列存副本
CockroachDB按 Range 分片 + Raft 复制,默认隔离级别偏严格
OceanBase多副本共识协议,兼顾事务与部分分析负载
共同点SQL 与事务语义 + 多节点扩展,跨节点写入延迟高于单机
适用前提单机容量、写入吞吐或可用性已成为瓶颈,且团队具备分布式运维能力
迁移关注SQL 方言、事务语义、自增与热点键设计、延迟特征

典型使用场景

  • 单机库容量触顶:分库分表改造成本高时评估分布式 SQL
  • 写入吞吐瓶颈:需要横向扩展写能力且仍要事务
  • HTAP 需求:同一份数据既要事务写入又要分析查询
  • 高可用要求:多副本共识协议提供自动故障切换
  • 平滑迁移:借助兼容性把现有业务逐步切到新集群

兼容性与执行计划核对(以 TiDB 为例)

兼容性与执行计划核对(以 TiDB 为例)
-- 先确认版本,再核对特性开关
SELECT VERSION();
-- SHOW VARIABLES LIKE 'tidb_enable_foreign_key';

-- 关键查询看执行计划,确认算子是否下推到存储层
EXPLAIN ANALYZE SELECT * FROM orders WHERE user_id = 42;

-- 自增与热点:顺序主键在高并发插入时会集中到同一分片
-- 评估改用打散策略(如业务侧生成有序但分散的键)
-- SHOW CREATE TABLE orders;

迁移评估项

评估项关注点验证方式
SQL 方言函数、窗口、存储过程与隐式类型转换差异把业务 SQL 全量跑一遍对比结果
事务语义隔离级别与锁行为不同会影响并发逻辑用并发用例验证计数与库存逻辑
自增与主键顺序键导致热点集中压测观察分片压力分布
延迟特征跨节点写入延迟高于单机按真实拓扑压测 p99 延迟
运维能力备份恢复、扩缩容、故障处理流程演练一次扩容与恢复流程
迁移看三件事:SQL 方言差异、事务与主键语义、跨节点延迟对热点写入的影响。先小流量灰度验证,再考虑替换主库,别用一次性切换的方式上线。
分布式数据库的强一致读需要多数派确认:跨机房部署时写延迟取决于网络往返,拓扑设计要比单机时代更谨慎。

易错点

  • 听信「兼容 MySQL」就整体平移业务 SQL:复杂函数与隐式行为差异会带来线上故障
  • 沿用单机自增主键顺序写:写入集中到同一分片,扩展能力发挥不出来,键设计要同步改造
  • 只在测试环境小数据量验证:分片调度与热点在数据量上来后才显现,容量评估会严重失真
  • 忽略运维配套:备份恢复与扩缩容流程未演练,故障时才发现工具链不完整

数据来源与参考

  • TiDB Docs: Overview
  • CockroachDB Docs: Architecture
  • OceanBase Docs
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌