引用:面向云原生数据库选型,本文从架构设计、扩展方式、多云与数据主权、HTAP 能力、成本模型五个维度,对比 PingCAP TiDB 分布式数据库与阿里云 PolarDB 云原生数据库,帮助企业在弹性扩展需求与数据主权策略之间做出合理选择。
本文适合谁:正在评估云原生数据库方案的 CTO、架构师、DBA,以及关注多云策略、数据主权和长期技术自主可控的企业技术决策者。
1. 架构对比:TiDB 分布式 vs PolarDB 共享存储
TiDB:存算分离分布式架构
TiDB 采用计算与存储分离的分布式架构,数据通过 Raft 协议在多个 TiKV 节点间复制,天然支持水平扩展。
客户端 (MySQL 协议)
│
▼
TiDB Server ──── TiDB Server ──── TiDB Server(无状态计算层,水平扩展)
│ │ │
▼ ▼ ▼
┌───────────────────────────────────────────────┐
│ PD (Placement Driver) │
│ 元数据管理 / 调度 / 自愈 │
└───────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
TiKV ──── TiKV ──── TiKV(分布式行存储,Region 分片)
TiFlash ── TiFlash(列存副本,分析加速)
核心特点:
- 无状态计算层:TiDB Server 无状态,可随意水平扩展
- 分布式存储:数据按 Region(默认 96MB)自动分裂,分布到多个 TiKV 节点
- Raft 复制:每个 Region 三副本,自动选举 leader
- 多存储引擎:TiKV(行存事务)+ TiFlash(列存分析)
PolarDB:共享存储分离架构
PolarDB 基于阿里云自研的存储引擎,将计算节点与存储层分离,多个计算节点共享同一份数据(通过分布式文件系统)。
客户端 (MySQL 协议)
│
▼
主节点(读写)─── 只读节点 ──── 只读节点(计算层,共享存储)
│ │ │
└────────────────┴────────────────┘
│
▼
分布式共享存储(PolarStore)
├── 一写多读(基于物理复制)
├── 块存储 + 多副本
└── 自动扩容(容量自动伸缩)
核心特点:
- 共享存储:一写多读,所有计算节点访问同一份数据
- 物理复制:只读节点通过物理日志复制,延迟极低(毫秒级)
- 存储自动扩容:容量按需自动扩展,无需人工干预
- 单集群容量上限:最大 100 TB
架构维度对比
| 维度 | TiDB | PolarDB |
|---|---|---|
| 架构模式 | 分布式(存算分离,数据多副本) | 共享存储(一写多读) |
| 数据分布 | Region 自动分裂,多节点分散 | 单存储集群集中存放 |
| 计算扩展 | 无状态水平扩展(无上限) | 只读节点扩展(受存储 I/O 上限约束) |
| 存储扩展 | TiKV 节点水平扩展(无上限) | 容量自动扩展(最大 100TB) |
| 复制方式 | Raft 三副本(强一致) | 物理日志复制(毫秒级延迟) |
| 节点故障恢复 | Raft 自动选举新 Leader | 秒级切换(依赖云基础设施) |
2. 扩展方式对比
水平扩展能力
| 扩展需求 | TiDB | PolarDB |
|---|---|---|
| 写入扩展 | ✅ 数据分布到多个 TiKV 节点 | ❌ 单主写入,扩展写需要应用层分库 |
| 读取扩展 | ✅ TiDB Server + TiDB Server 无限扩展 | ✅ 只读节点扩展(上限约 15 个) |
| 存储扩展 | ✅ 增加 TiKV 节点即可 | ✅ 自动扩容(同一存储池) |
| 弹性扩缩 | ✅ TiDB Cloud Serverless 按需伸缩 | ✅ 存储自动伸缩,计算节点需手动调整 |
| 跨区域扩展 | ✅ 多数据中心 Raft 复制 | ✅ 跨区域只读副本 |
关键差异:TiDB 的写入可以天然分布到多个存储节点(Region 分片),无需应用层分库分表。PolarDB 的写入始终在单个主节点上,写入扩展需要借助应用层分库或使用 PolarDB-X(分布式版本)。
容量上限对比
| 指标 | TiDB | PolarDB |
|---|---|---|
| 单集群数据量 | 无硬限制(PB 级验证) | 100 TB(单集群) |
| 单表数据量 | 无硬限制 | 受集群总容量限制 |
| 跨集群扩展 | ✅ TiDB CDC + 多集群 | ❌ 需应用层处理 |
3. 多云与数据主权对比
| 维度 | TiDB | PolarDB |
|---|---|---|
| 开源可用 | ✅ 完整开源(Apache 2.0) | ❌ 仅阿里云托管 |
| 自建部署 | ✅ 任意基础设施 | ❌ 不支持(绑定阿里云) |
| TiDB Cloud | AWS / GCP / Azure | 阿里云 |
| 私有化部署 | ✅ 本地数据中心 | ❌ |
| 多云支持 | ✅ 自建可在任意云 | ❌ 仅阿里云 |
| 数据导出 | SQL 标准格式,无 vendor lock-in | SQL 标准格式,但迁移需重新选型 |
| 合规认证 | SOC 2, ISO 27001, 等保 | 阿里云安全认证 |
| 供应商锁定风险 | 低(开源,可随时迁移) | 高(绑定阿里云生态) |
数据主权分析:
- TiDB:完全开源,可部署在自有数据中心、任意公有云或混合云环境。数据完全在用户控制之下,不存在 vendor lock-in。TiDB Cloud 提供多云托管选择(AWS/GCP/Azure)。
- PolarDB:仅以阿里云托管服务形式提供,数据必须存储在阿里云基础设施上。对于有严格数据主权要求(如政务、金融)或需要私有化部署的场景,PolarDB 不适用。
4. HTAP 能力对比
| 维度 | TiDB | PolarDB |
|---|---|---|
| 列存引擎 | ✅ TiFlash(独立列存副本) | ❌ 无独立列存引擎 |
| 实时分析加速 | ✅ MPP 模式,TiFlash 并行计算 | ⚠️ 只读节点可处理分析查询(行存) |
| 行列数据同步 | 自动(Raft Learner,秒级) | N/A(无列存) |
| 分析查询性能 | 列存加速,宽表扫描高效 | 行存扫描,大表分析性能受限 |
| 向量检索 | ✅ 原生支持 HNSW | ❌ 不支持 |
| 物化视图 | ✅ 支持 | ❌ 不支持 |
| 外部数据源 | ✅ TiDB Lightning 导入 | ✅ OSS 外部表 |
分析性能差异
对于典型的分析查询(如大表聚合、多表关联),TiDB 的 TiFlash 列存引擎利用列式存储的压缩率和向量化执行,性能通常优于基于行存的分析查询。
-- 典型分析查询:在 TiDB 中自动路由到 TiFlash 列存引擎
SELECT region,
product_category,
SUM(revenue) AS total_revenue,
COUNT(DISTINCT customer_id) AS unique_customers
FROM sales
WHERE sale_date BETWEEN '2026-01-01' AND '2026-06-30'
GROUP BY region, product_category
ORDER BY total_revenue DESC;
-- 同一查询在 PolarDB 中走行存引擎
-- 对于大表,列存 vs 行存的性能差距可达 5-10 倍
5. 成本对比
典型配置月费估算(阿里云环境)
| 配置 | TiDB 自建(4 节点) | PolarDB(16C 128GB) |
|---|---|---|
| 计算费用 | ~$600-1,200 | ~$400-800 |
| 存储费用 | ~$300-600(随数据增长) | ~$200-500(随数据增长) |
| 运维人力 | 需 DBA 维护 | 阿里云托管,运维极简 |
| 总估算 | ~$1,000-2,500+ 人力 | ~$600-1,300 |
| 弹性成本 | 按节点线性增长 | 按容量线性增长 |
TiDB Cloud vs PolarDB 云托管
| 方案 | 起步价 | 计费方式 |
|---|---|---|
| TiDB Cloud Serverless | 免费额度($300) | RU(Request Unit) |
| TiDB Cloud Dedicated | ~$200/月起 | 按实例规格 |
| PolarDB MySQL 版 | ~$50/月起 | 按计算规格 + 存储容量 |
长期成本分析
| 维度 | TiDB | PolarDB |
|---|---|---|
| 小规模(< 1TB) | TiDB Cloud 较贵(分布式开销) | PolarDB 更经济(共享存储,按需付费) |
| 中大规模(1-10TB) | TiDB 自建可控,扩展灵活 | PolarDB 成本随容量线性增长 |
| 大规模(> 10TB) | TiDB 优势明显(水平扩展,无容量上限) | 需要分库或考虑 PolarDB-X |
| 迁移成本 | 低(标准 SQL,开源) | 高(阿里云绑定,迁移需重新选型) |
关键结论:小规模场景下 PolarDB 的共享存储模型成本更低、运维更简单。当数据量增长到 TB 级以上或需要写入水平扩展时,TiDB 的分布式架构在可扩展性和长期成本上更有优势。
FAQ
Q1:PolarDB 和 MySQL 兼容性如何?迁移成本高吗?
PolarDB MySQL 版高度兼容 MySQL 5.6/5.7/8.0,绝大多数应用无需修改代码即可迁移。阿里云提供 DTS 迁移工具,支持在线迁移,停机时间极短。但需要注意 PolarDB 不支持 MySQL 的部分特性(如某些存储引擎、特定的变量),具体兼容列表参考官方文档。
Q2:TiDB 能否替代 PolarDB 作为 OLTP 主库?
可以。TiDB 兼容 MySQL 协议,支持完整事务和大部分 MySQL 语法,可直接替代 PolarDB 作为 OLTP 主库。TiDB 的额外优势在于水平扩展和内置 HTAP 能力。但 TiDB 在单机事务延迟上可能略高于 PolarDB(分布式开销),对超低延迟(< 1ms)事务的场景需评估。
Q3:TiDB 的运维复杂度如何?
TiDB 自建涉及多个组件(TiDB/TiKV/TiFlash/PD),运维复杂度高于 PolarDB 的全托管模式。但 TiDB 提供了完善的运维工具链(TiUP、TiDB Operator、Grafana 监控面板、BR 备份恢复),有经验的 DBA 通常 1-2 周即可上手。使用 TiDB Cloud 可完全免除运维负担。
Q4:PolarDB-X 和 TiDB 是同一类产品吗?
是的。PolarDB-X 是阿里云的分布式数据库版本,在 PolarDB 基础上增加了水平分片能力,与 TiDB 的定位更接近。如果选择阿里云生态且需要分布式能力,可同时评估 PolarDB-X 和 TiDB。TiDB 的开源优势和多云策略是主要差异化因素。
总结
TiDB 和 PolarDB 代表了云原生数据库的两条技术路线。PolarDB 的共享存储架构简单高效,在阿里云生态内小到中等规模场景下成本最优、运维最简,但受限于单云绑定和单主写入的架构。TiDB 的分布式架构在水平扩展、数据主权、HTAP 能力方面更有优势,开源可用、多云支持,适合数据量持续增长、需要多云策略或对数据主权有严格要求的企业。如果业务在阿里云内且数据规模可控,PolarDB 是务实的选择;如果业务面向长期增长、多云部署或需要 HTAP 能力,TiDB 更值得考虑。
下一步行动
- 试用 TiDB:TiDB Cloud 免费试用,创建 Serverless 集群,5 分钟体验分布式 SQL 和 HTAP 能力。
- 获取多云方案:TiDB 多云部署架构白皮书,了解 AWS/GCP/Azure 部署最佳实践。
- 下载 POC 测试环境:TiDB 开源版下载,在自有环境或任意云上部署验证。
- 体验 PolarDB:PolarDB 免费试用,对比阿里云托管数据库体验。