◈ DB 选型参考
← 返回首页

TiDB

关系型 OLTP #分布式 #MySQL兼容 #HTAP #存算分离 #开源 #云原生 #Raft

PingCAP 开源的分布式 NewSQL 数据库——"云原生的 MySQL 扩展方案":让 MySQL 技术栈的团队不做分库分表、不搭 ETL,就拿到水平扩展和实时 HTAP,但要为架构的固定成本和运维复杂度付费。

用 AI 深挖这款:
证据等级:官方文档 厂商口径 社区实测 社区共识 待验证

基本信息

项内容
厂商PingCAP(2015 年成立)
国家中国(国际化程度国产库中最高)
起源2015 年立项、2017 年发布,受 Google Spanner / F1 / Percolator 论文启发
许可证Apache 2.0 全开源(内核无功能阉割的社区版)
商业版说明无独立"企业版内核";商业化 = PingCAP 订阅服务(技术支持/SLA)+ 部分订阅版本功能差异(官方路线图脚注明确"不同的服务订阅版本中的功能可能有所不同",具体矩阵待验证)
托管服务TiDB Cloud(全托管,有免费试用层)
主类型关系型(原生分布式,NewSQL)
兼具类型HTAP(TiFlash 列存)、向量检索(v8.4 起实验特性)

硬维度(47 项)

1 静态加密 / TDE 有(需逐组件开启)

有(需逐组件开启)——TiKV 静态加密(v4.0+,AES-CTR 加密数据文件,主密钥经 AWS KMS 或本地文件提供,数据密钥自动轮换);TiFlash / PD / BR 各有加密支持,"全覆盖"需逐组件配置。证据:官方 encryption-at-rest 文档(v7.5)。

2 TLS / 传输加密 有

有——TLS。证据:官方文档。

3 审计 部分支持

部分支持——TiDB Server 内置审计日志(enable-audit 开关,JSON 格式记录 SQL/登录事件)存在,见社区部署实践;细粒度合规审计能力与 TiDB Cloud 审计边界未找到可靠官方证据,本轮不下"完整支持"结论。证据:社区共识(CSDN 部署实践),官方文档待复核。

4 认证与权限 有

有——兼容 MySQL:用户/密码认证、GRANT/REVOKE 权限体系、角色(CREATE ROLE);支持 SSL 客户端证书。LDAP/Kerberos 等外部认证支持情况未找到可靠证据。证据:官方兼容性文档逐项 + 社区共识。

5 备份恢复 有

有——BR 快照物理备份、TiCDC 增量同步、Lightning 导入;GC safepoint 保障一致性备份。但快照备份慢(社区案例备份 >8h)、恢复会占满集群资源(官方建议恢复到新集群)。证据:官方文档 + 社区实测。

6 可观测性 有

有——TiDB Dashboard(热力图、Top SQL、慢查询)、Grafana 全套看板(PD TSO、Raft、TiFlash-Summary)、ADMIN SHOW DDL JOBS。证据:官方文档 + 社区共识。

7 连接模型 有

有——TiDB Server 无状态接入(MySQL 协议 4000 端口),客户端直连或经 LB/代理;连接池通常靠应用或外部代理实现。官方 TiProxy 组件的细节未独立核实,待验证。证据:官方文档 + 社区共识。

8 事务与隔离级别 有

有——Percolator 分布式事务,SI/RC 隔离级别(乐观事务默认,可切悲观 tidb_txn_mode='pessimistic');单行 ≤6MB、单事务默认 ≤100MB(v8.0 bulk DML 可绕过)。证据:官方文档(transaction-overview.md)+ 社区共识。

9 复制与一致性 有

有——Multi-Raft(每 Region 一个 Raft Group),默认 3 副本强一致;官方口径 RPO=0、RTO≤30 秒(故障自动切换,非备份恢复——厂商口径)。证据:官方口径。

10 扩展方式 有

有——原生 scale-out;计算(TiDB Server)与存储(TiKV)可独立扩缩,SQL 层无状态。证据:官方口径 + 社区共识。

11 兼容性 部分支持

部分支持——MySQL 5.7 协议/语法高度兼容;官方兼容性矩阵明确列出不支持:存储过程/函数、触发器、事件、全文索引、GIS、XA、CREATE TABLE AS SELECT、SKIP LOCKED 等。证据:官方兼容性文档逐项。

12 许可证与商业模式 有

有——Apache 2.0 全开源,内核无功能阉割;商业化 = PingCAP 订阅服务(技术支持/SLA),官方路线图脚注明确"不同订阅版本功能可能有所不同",具体矩阵待验证。证据:官方口径。

13 中文资料丰富度 有(丰富)

有(丰富)——官方中文文档、AskTUG 社区、CSDN/掘金大量实践帖;英文资料同样丰富,出海友好。证据:社区共识。

14 性能与延迟特征 有

有(分布式 HTAP;OLTP 延迟高于单机)。

  • TPC-C 分布式纪录厂商口径;加 TiKV 节点即扩展 厂商口径。
  • 分布式事务 2PC:跨分片写入延迟明显高于单机 MySQL,单分片小事务接近单机水平 社区共识。
  • TiFlash 列存副本加速分析查询,一套集群跑 HTAP 官方文档。

15 合规与认证 有

有(信通院可信云;分布式事务库测评)。

  • 通过中国信通院可信云、分布式事务型数据库能力测评厂商口径厂商口径。
  • 信创名录/集采目录版本以 PingCAP 官方公告为准 厂商口径。
  • TiDB Cloud(海外)走国际合规体系,以公开页为准 待验证。

16 成熟度与社区生态 有

有(2015 年开源;分布式开源标杆)。

  • 2015 年开源(PingCAP);现 7.x/8.x 代 官方文档。
  • GitHub stars 数万级,CNCF 毕业项目,社区活跃 社区共识。
  • 商业公司 PingCAP 持续融资与投入;HTAP 与云是增长方向 社区共识。

17 标杆用户 有

有(美团/知乎/小米等互联网与金融)。

  • 美团、知乎、小米等互联网公司公开案例厂商口径厂商口径。
  • 金融:部分银行核心/外围系统 厂商口径。
  • 海外:日本 PayPay 等厂商口径厂商口径。

18 生态工具链 有

有(BR/Dumpling/Lightning/DM/TiCDC;监控内置)。

  • 备份恢复:BR;逻辑:Dumpling/Lightning;迁移:DM(MySQL→TiDB)官方文档。
  • CDC:TiCDC(到 Kafka/下游 TiDB)官方文档。
  • 监控:Prometheus + Grafana 内置 Dashboard,开箱即用 官方文档。

19 云托管与 Serverless 有

有(TiDB Cloud(Serverless/Dedicated))。

  • TiDB Cloud Serverless(按量)/ Dedicated(独享)官方文档。
  • 覆盖 AWS/GCP,国内走腾讯云/阿里云 官方文档。
  • 自建与云 API 一致,迁移顺滑 社区共识。

20 数据接入与摄入 有

有(TiDB Lightning(物理/逻辑);Dumpling;BR)。

  • Lightning 物理导入模式(SST 直写)TB 级最快 官方文档。
  • Dumpling 逻辑导出;BR 做备份恢复 官方文档。
  • Lightning 逻辑模式兼容 mydumper 文件 官方文档。

21 外部数据访问 部分支持

部分支持(Lightning 可从 S3/Parquet 导入;无联邦查询)。

  • Lightning 支持从 S3/GCS 读 Parquet/CSV 导入 官方文档。
  • 无外部表/FDW 语义,跨源查询要先入 TiDB 社区共识。
  • 实时联邦场景一般用 Doris/StarRocks 外表代替 社区共识。

22 CDC 与下游同步 有

有(TiCDC:Kafka/MySQL 下游一等公民)。

  • TiCDC 捕获 TiKV 变更推到 Kafka/MySQL/Pulsar/对象存储 官方文档。
  • 支持 Avro/Canal-JSON 等协议 官方文档。
  • 大事务与 changefeed 延迟监控是运维重点 社区共识。

23 TTL 与数据生命周期管理 有

有(表级 TTL 属性(TTL='x'),原生支持)。

  • 建表时 TTL="3 MONTH" 等,过期行后台自动删 官方文档。
  • TTL 作业与 GC 配合,大表过期删对前台影响小 官方文档。
  • TTL 列要求有索引,设计表时要注意 社区共识。

24 在线 DDL 与 Schema 演进 有

有(F1 在线 DDL;全部支持的操作都在线,含分布式回填)。

  • 只改定义:加列只改元数据(默认值存 schema、不回填历史行,O(1))官方文档;重命名、改 DEFAULT 同理在线。
  • 重写但位置不变:加索引是分布式回填——按 Region 切分、多 worker 并行构建,限流保护前台延迟,完成后原子切换;大表耗时但读写不阻塞 官方文档。
  • 搬数据:TiDB 无单机式 COPY 重建锁表;重分布=分布式回填/重组,天然在线。但 clustered 类型主键的增删、分区表上的列类型变更等明确不支持(查证为无)官方文档。
  • 验证约束:无 NOT VALID 两阶段语法;唯一性验证即"加索引=分布式回填",在线完成 官方文档。
  • 规模:回填类操作代价 O(n)——分布式并行+限流,大表只是"慢"而不是"锁",这是与 MySQL 系的本质区别 官方文档。
  • 语义:DDL 由 DDL owner 经 job 队列异步执行、多状态流转(none→…→public),不参与用户事务、不能包进事务回滚 官方文档;v6.2+ 单条 ALTER 支持多 schema 变更(同一对象改两次报错),ALGORITHM=… 只作断言、不改变实际算法 官方文档;v6.3+ 元数据锁(v6.5 默认开):有未提交事务的表上 DDL 被阻塞——"在线 DDL"≠"随时 DDL",长事务照样卡 DDL 官方文档。

25 多租户与资源隔离 有

有(Resource Control(RU)租户级限流)。

  • Resource Control 按资源组分配 RU(Request Unit),CPU/IO 统一度量限流 官方文档。
  • 后台任务与前台业务可分组隔离,noisy neighbor 可控 官方文档。
  • RU 估算需要压测,配错会限错业务 社区共识。

26 跨地域多活 有

有(多中心多活,放置规则跨区)。

  • placement rules 按 DC/rack/zone 放副本,天然跨地域 官方文档。
  • follower 读 + stale read 降低跨区读延迟 官方文档。
  • 跨区写延迟是物理上限,业务分区键设计关键 社区共识。

27 高可用架构与 RTO/RPO 有

有(Raft 自愈,RTO 秒级)。

  • TiKV Raft 多副本,节点故障自动补副本+选主,RTO 秒级 官方文档。
  • RPO=0,脑裂靠 Raft 防护 官方文档。
  • PD 本身也要高可用部署 社区共识。

28 行级安全与数据脱敏 未找到证据

未找到证据(未见原生RLS公开文档)。

  • 未找到 TiDB 原生行级安全的官方文档;MySQL 协议兼容层未继承企业版脱敏组件 待验证
  • 行级隔离通常靠视图或应用层 WHERE 实现 社区共识
  • 列级权限沿用 MySQL 兼容的 GRANT 模型 官方文档
  • 如需强 RLS / 脱敏,选型前务必向官方确认路线图 待验证

29 JSON 与半结构化能力 有

有(JSON 类型 MySQL 兼容)。

  • JSON 类型与函数 MySQL 兼容 官方文档。
  • JSON 索引经虚拟列,分布式下注意 社区共识。

30 全文检索能力 无

无(查证为无 FULLTEXT)。

  • 不支持 FULLTEXT 索引(MySQL 兼容性缺口,查证为无)官方文档。
  • 全文场景外挂 ES 社区共识。

31 存储效率与压缩 有

有(RocksDB LSM 压缩+TiFlash 列存)。

  • 底层 TiKV 基于 RocksDB,LSM 多层压缩(Snappy/LZ4/ZSTD 可选),天然高压缩。官方文档
  • TiFlash 列存副本提供分析场景下的列式压缩与高压缩比。官方文档
  • LSM 写放大会带来额外的压缩/合并 I/O 开销,需调优 compaction 策略。社区实测

32 开源协议与厂商锁定风险 无

无(Apache 2.0 全开源;云服务闭源)。

  • TiDB(含 TiKV、PD)全栈采用 Apache 2.0 协议开源,GitHub 可见,无协议变更黑历史。官方文档
  • TiDB Cloud 为闭源托管服务,存在云绑定,但自建版功能对等,可平滑迁回。厂商口径
  • MySQL 协议兼容使迁入迁出都有成熟路径,锁定风险低。社区共识

33 查询优化器与计划稳定性 有

有(CBO+丰富 hint;SPM 计划绑定)。

  • CBO + 丰富 hint,SPM(SQL Plan Management)可绑定计划 官方文档。
  • 统计信息+Plan Cache,计划翻转有治理手段 官方文档。
  • 分布式计划调优心智与单机不同 社区共识。

34 参数调优与自治能力 有

有(Dashboard 诊断强;auto-analyze 自治)。

  • TiDB Dashboard 慢查询/热点可视化完善 官方文档。
  • auto-analyze 自动收集统计信息 官方文档。
  • 参数多,深度调优仍需专家 社区共识。

35 静默数据损坏防护 部分支持

部分支持(TiKV RocksDB 块校验,用户侧无开关)。

  • TiKV 基于 RocksDB,数据块带 checksum,读路径可发现损坏块。社区实测
  • Region 三副本 + Raft,单副本损坏可被多数派掩盖并自动修复。官方文档
  • 无用户可见的页校验开关或全库校验命令,损坏审计能力有限。社区共识

36 存储过程/触发器/过程语言 无

无(查证为无存储过程/触发器)。

  • 不支持存储过程、触发器(查证为无)官方文档。
  • 去 O/去 MySQL 迁移时 SP 需重写为应用逻辑 社区共识。

37 约束与数据完整性 部分支持

部分支持(FK 曾长期缺失;现逐步完善)。

  • 外键曾长期不支持,现版本逐步完善,仍有诸多限制 官方文档。
  • CHECK 支持;生产使用外键前按版本核对限制清单 社区实测。

38 分析 SQL 完备性 有

有(窗口/CTE MySQL 8 对齐)。

  • 窗口函数、CTE 与 MySQL 8 对齐 官方文档。
  • MPP 下复杂分析可用 TiFlash 加速 官方文档。

39 被遗忘权与数据擦除 部分支持

部分支持(手动DELETE;MVCC历史版本残留)。

  • TiDB 是 MVCC 架构:DELETE 只写新版本做删除标记,旧版本在 GC(默认 10 分钟,可配)前仍可读 官方文档
  • GC 后旧版本被清理,但 Raft 日志、BR 备份、TiCDC 下游仍可能残留 社区共识
  • 无原生擦除证明,GDPR 场景需应用层记录删除审计 社区共识

40 数据血缘与目录集成 无

无(查证为无原生血缘)。

  • 无原生数据血缘 官方文档。
  • 依赖第三方治理平台 社区共识。

41 存算分离 vs 存算一体 有

有(存算分离:TiKV/TiFlash 独立扩缩)。

  • TiDB/TiKV/TiFlash/PD 分离,可独立扩缩 官方文档。
  • 行列混存按需扩展 官方文档。

42 多模能力 部分支持

部分支持(关系+JSON+向量;全文待验证)。

  • JSON 类型,TiDB Vector Search 向量检索 官方文档。
  • 全文检索能力待验证 待验证。

43 FinOps 成本可观测性 不适用

不适用(自建无计费,成本=硬件+运维人力自理)。

  • 开源自建无内置计费概念,成本是节点硬件、存储与运维人力。社区共识
  • TiDB Cloud 托管版按量计费,支持用量视图与标签归因。厂商口径

44 驱动与多语言生态 有

有(MySQL 协议兼容)。

  • MySQL 线协议兼容,驱动生态直接复用 官方文档。

45 物化视图 无

无(查证为无物化视图能力)。

  • 无物化视图(查证为无)官方文档。
  • 预聚合靠应用层或下游 OLAP 社区共识。

46 支持跨云 有

有(开源任意云;TiDB Cloud AWS/GCP)。

  • 开源版任意云/自建可部署 官方文档。
  • TiDB Cloud 支持 AWS/GCP 官方文档。
  • 跨云部署延迟门槛同多活维度 社区共识。

47 热点数据更新能力 有

有(悲观锁内核重试加公平锁,同行串行)。

  • 并发控制原语:TiKV 层 latch 本地串行加分布式行锁;悲观事务模式(官方推荐的高冲突场景选择)下写冲突直接在内核加悲观锁串行,冲突语句由 TiDB 按最新数据内部重试(pessimistic-txn.max-retry-count 限次),应用只在超限时才看到错误 官方文档。
  • 公平锁:tidb_pessimistic_txn_fair_locking(v7.0 引入,新集群默认开启)解决同一行高并发下后到事务被持续饿死的问题,代价是冲突事务的平均延迟上升 官方文档。
  • 内存悲观锁(v6.0 引入):悲观锁只存 Region leader 内存、不经 Raft 复制落盘,大幅降低加锁开销、提升悲观事务吞吐 官方文档。
  • 乐观模式:写冲突在 prewrite 阶段才发现,由 TiDB 内核按 tidb_retry_limit 自动重试整个事务,重试责任在内核而非驱动或应用 官方文档。
  • 内置热点缓解:PD 的 hot Region 调度可把热点 Region 的 leader 与副本在节点间打散;但单行热点仍卡在单个 Region leader 的 latch 串行上,Region 级打散解决不了单 key 瓶颈 官方文档。
  • 应用层模式:官方语境中的"热点"主要指 Region 写入热点,官方解法是在建表时用 SHARD_ROW_ID_BITS 预打散行 ID、把写入分散到多个 Region,配合 PD 的 hot Region 调度再平衡;严重冲突时还需缩小事务范围或拆分热点 key;代价是建模改造成本 官方文档。

招牌能力

写法要求:每个特性 = 它是什么 + 为什么是真本事 + 推到边缘会发生什么。

  1. 存算分离:无状态 SQL 层秒级扩容 真本事:TiDB Server 完全无状态,只做解析、优化、执行;计算和存储可独立扩缩——读压力大只加 TiDB 节点,写压力大只加 TiKV。这是与 OceanBase"一体化"架构最根本的分岔:云原生弹性场景下扩计算不需要搬数据。 边缘真相:秒级扩的是计算,存储扩容(加 TiKV)要靠 PD 做 Region 迁移重分布,吃 IO 和网络,赶上业务高峰等于"飞行中换引擎";且 Region 迁移期间热点 Region 的 leader 切换会带来延迟毛刺。扩容快的是"加机器",不是"数据就位"。
  2. TiFlash 实时 HTAP:行列双引擎 真本事:TiKV 行存跑 OLTP,TiFlash 列存跑 OLAP,通过 Raft Learner 实时复制同一份数据,优化器自动选路——同一套 SQL 接口同时服务交易和分析,省掉"T+1 ETL 到数仓"整条链路。得物等公司的典型用法:MySQL 分库分表做点查,TiDB 扛非分片查询和复杂分析。 边缘真相:见深水区四——Learner 复制是异步的,"强一致读"读到的是"某个已提交版本"而非"最新";写入洪峰下 learner 落后,HTAP 查询的延迟直接放大;优化器选路可能选错引擎。HTAP 是 T+秒级,不是 T+0。
  3. Percolator 分布式事务:跨节点 ACID 真本事:基于 Google Percolator 论文的两阶段提交,跨 Region/跨节点事务原生 ACID,不需要应用层自己拼"最终一致"。这是它相对 MySQL 分库分表方案(跨分片无分布式事务)的代际优势。 边缘真相:见深水区二——2PC 的税是按"跨越的 Region 数"交的;单事务默认 100MB 上限、单行 6MB 上限是写死在架构里的(v6.5+ 改为会话内存配额,v8.0 bulk DML 绕过);热点行上的分布式事务 = 锁等待放大器。事务模型设计不好,分布式事务比分库分表更慢。
  4. MySQL 协议兼容 + 迁移工具链 真本事:协议层兼容 MySQL 5.7,驱动、ORM、Navicat/DBeaver 即插即用;DM 做 MySQL→TiDB 全量+增量迁移,TiCDC 做反向/异构同步,Lightning/BR 管大批量导入导出。MySQL 团队迁移的心智成本是国产分布式库里最低的。 边缘真相:见深水区七——"95% 兼容"剩下的是存储过程、触发器、事件、全文索引、GIS、XA、CTAS 等(官方兼容性文档逐项列出不支持);AUTO_INCREMENT 的语义与 MySQL 有微妙差异(批量分配、跨 TiDB 实例不保证单调),直接照搬 MySQL schema 会撞上写入热点。兼容的是"协议和常用语法",不是"行为一致"。
  5. 全开源与全球化生态 真本事:Apache 2.0,内核 GitHub 全公开,TiKV 是 CNCF 毕业项目;DB-Engines 全球排名国产前列;中英文档、AskTUG 社区、TiDB Dashboard 可观测性工具链完整。出海、多云、不想被单一厂商绑定的团队,这是相对 OB/TDSQL 的结构性优势。 边缘真相:开源的是代码,不是运维能力——深水区问题(热点、TSO 瓶颈、TiCDC 延迟)最终都要靠读源码或买原厂支持解决;官方路线图脚注承认"不同订阅版本功能可能有所不同",生产级 SLA 还是要付费。以及:社区版用户遇到内核级 bug,修得再快也要自己升级——升级本身就是个深水区(见吐槽清单)。

深水区

以下每条 = 机制 + 推到边缘会发生什么 + 选型含义。证据类型已标注。

深水区一:TSO——"免费"的全局时钟其实不免费

  • 机制:PD 的 TSO 服务分配全局单调递增时间戳(physical_ms << logical_bits | logical_counter);每笔事务的 start_ts/commit_ts 都要找 PD 拿;TiDB 客户端用 TSFuture 异步批量预取,不在每次读写热路径上实时阻塞。
  • 推到边缘:
    • 官方调优文档承认:高频小事务场景下 TSO 会成为瓶颈——实测案例中 TSO wait 占 execute 时间超过 1/4(read-committed 隔离级别下每条语句都要取 TSO;v6.0 起 tidb_rc_read_check_ts 减少取 TSO 次数)。
    • 官方给出的缓解手段本身就是"降级":tidb_low_resolution_tso(读缓存时间戳,可能读到几秒前的旧数据)、把小事务合并、tidb_tso_client_rpc_mode=PARALLEL/PARALLEL-FAST(v8.4+,用 2~4 倍 RPC 换延迟)。
    • PD 高可用靠内嵌 etcd 3 节点 Raft,leader 选举期间(约 3 秒,社区笔记口径)授时不可用;TiDB 拿不到 TSO 报 9001 PD server timeout(TiDB 后台 worker 100 秒拿不到 safepoint 即报错)。
    • 跨机房部署时 TSO RPC 延迟直接进账:官方实例中同机房 TSO wait 约 206µs,跨机房(同地区不同 AZ)涨到 3.12ms。
    • 官方路线图把"PD 路由功能微服务化(无状态、避免 PD 成为集群资源瓶颈)"列为未来方向——官方自己承认 PD 有成为瓶颈的风险。
  • 选型含义:POC 必须压"高频小事务"模型并看 Grafana 的 PD TSO Wait/RPC 面板;跨 AZ/跨机房部署要把 TSO 延迟算进 P99 预算;低精度 TSO 是用一致性换延迟的显式 trade-off,不是免费优化。
  • 来源:官方文档(performance-tuning-config.md、performance-tuning-methods.md、error-codes.md、tidb-roadmap.md);社区共识(MVCC/TSO 技术解析)。

深水区二:Percolator 2PC 的税——按跨越的 Region 数交

  • 机制:乐观事务(默认)提交时做两阶段:prewrite 给所有 key 写 lock(带 start_ts),再拿 commit_ts 写主 key 提交、异步清其他 key 的锁;悲观事务(tidb_txn_mode='pessimistic')写入时先加锁。
  • 推到边缘:
    • 硬性天花板(官方 transaction-overview.md):单行 ≤6MB;单个事务默认 ≤100MB(txn-total-size-limit,最大可配 1TB),且事务内存放大可达 2~3 倍;v6.5 起改为计入会话内存由 tidb_mem_quota_query 控制;v8.0 起 tidb_dml_type="bulk" 的 DML 不受该限制——但这是"绕过"不是"消除"。
    • 超限直接报错:8004 事务过大、8005 Write Conflict, txnStartTS is stale;悲观事务下 SELECT FOR UPDATE 遇到写冲突不重试直接 8002 回滚,应用必须自己重做整个事务。
    • 单个事务持锁最长 max-txn-ttl 默认 1 小时,超时锁可能被其他事务清掉导致提交失败;长事务还会卡住 GC(默认 10 分钟)导致 MVCC 旧版本堆积、空间膨胀。
    • 热点行 + 分布式事务 = 灾难组合:秒杀扣库存这类场景,乐观事务冲突重试浪费整事务工作量,必须切悲观事务;而悲观锁等待又会拖慢整条链路。
  • 选型含义:ETL/批量写入必须拆批(官方 FAQ 原话:大事务会"卡住下面的 Raft 复制流程");POC 必须用真实事务模型(含热点行)压测,不要只测单表点查;从 MySQL 迁过来的"一个事务几十万行"写法是头号踩坑位。
  • 来源:官方文档(transaction-overview.md、error-codes.md、tidb-configuration-file.md、旧版 FAQ)。

深水区三:Region 热点——schema 写下的第一行就决定了上限

  • 机制:数据按 key range 切成 Region(v8.5 起默认 256MiB),Region 是 Raft 复制和调度的基本单位;AUTO_INCREMENT 递增 ID 让所有新写入打到"最后一个 Region"——尾部热点。
  • 推到边缘:
    • 官方文档(auto-increment.md)明确警告:"使用 AUTO_INCREMENT 可能会给生产环境带热点问题,因此推荐使用 AUTO_RANDOM 代替"。AUTO_INCREMENT 在 TiDB 里是各 TiDB Server 批量缓存分配(默认 3 万一段),跨实例不保证单调——和 MySQL 的语义本来就不一样。
    • 打散手段都有代价:SHARD_ROW_ID_BITS 只对隐式 rowid 表有效,开太大 RPC 请求数放大、CPU/网络开销上升(官方文档原话);AUTO_RANDOM(5bit 随机 + 59bit 自增)解决写入热点但 ID 不连续、不再"自增";时间序主键(created_at 前缀)同样是尾部热点。
    • 社区实测(MySQL vs TiDB POC,2026-09):单机 read-heavy 场景 MySQL TPS 领先 TiDB 58%~81%,结论"单机 Read-heavy:MySQL 压倒性领先;TiDB 为架构固定成本无解"——每次查询都要走 RPC + 多副本 + RocksDB,这是架构税,不是调优能抹掉的。
    • v8.5 把默认 Region 从 96MiB 提到 256MiB(官方性能报告:OLTP 插入 +27%、Analyze +45%——厂商口径,仅作架构演进参考,不作为判决依据),本质是"用更大的调度粒度换更低的管理成本";但对小表多查询型业务,大 Region 反而可能聚合热点(官方博客建议这类场景调回小 Region)。
  • 选型含义:主键设计是 TiDB schema 设计的第一优先级,上线后再拆热点等于重构;POC 必须用"真实 ID 生成策略 + 真实写入分布"压测;数据量 <100GB 且读多写少的业务,单机 MySQL 可能更快更便宜——这是社区共识的"不适合"画像。
  • 来源:官方文档(auto-increment.md、troubleshoot-hot-spot-issues.md 引用)、官方 v8.5 性能解读、社区实测(MySQL vs TiDB POC)。

深水区四:TiFlash 的"实时"——Learner 复制的异步真相

  • 机制:TiFlash 是 TiKV 的只读副本,通过 Raft Learner 协议异步复制数据;读 TiFlash 时按 Raft log index 做一致性校验——只返回"已同步到的已提交版本",保证"读到的是某个一致快照",不保证"读到最新"。
  • 推到边缘:
    • 写入洪峰下 learner 落后是常态:TiFlash 读到的数据版本滞后于 TiKV,HTAP 查询的"实时性"退化为 T+秒甚至 T+分钟,而业务以为自己在做"实时分析"。
    • 优化器自动选路(走 TiKV 还是 TiFlash)可能选错:统计信息过期、代价估算偏差会导致 OLAP 查询走到 TiKV 全表扫,或点查走到 TiFlash;tidb_enforce_mpp 可强制但那是把优化器当摆设。
    • TiFlash 只读:任何写入都要先经过 TiKV,写放大路径上 TiFlash 只是"观众";TiFlash 节点故障不影响 OLTP,但 HTAP 查询直接降级。
    • 资源隔离是"建议"不是"默认":TiFlash 与 TiKV 混部时,大分析查询的 CPU/IO 会挤占 OLTP——官方建议独立部署 TiFlash 节点,等于 HTAP 要多付一套机器钱。
  • 选型含义:把 TiFlash 理解为"延迟秒级的实时数仓",而不是"零延迟";HTAP 场景 POC 必须同时压 OLTP 写入和 OLAP 查询,看 learner lag 指标;纯 OLAP 重查询场景,ClickHouse/Doris 的性价比通常更高社区共识。
  • 来源:官方架构(TiFlash Raft Learner 机制)、社区技术解析(TiFlash 一致性读取原理);"混部资源争抢"为社区共识。

深水区五:写洪峰 → RocksDB write stall → 流控拒绝写入

  • 机制:每个 TiKV 有两个 RocksDB 实例(data/raft 存 Raft 日志,data/db 存真实数据);写入先过 scheduler 做事务一致性检查,再进 raftstore(Store 线程复制 → Apply 线程落盘)。
  • 推到边缘:
    • 当 RocksDB compaction 跟不上写入(pending compaction bytes 堆积),触发 write stall——官方 troubleshooting 文档:v5.2 之前直接给客户端返回 ServerIsBusy 拒绝所有写(QPS 断崖);v5.2 起改为流控机制:先延迟写请求,soft-pending-compaction-bytes-limit(默认 192GiB)开始拒绝部分写,hard-pending-compaction-bytes-limit(默认 1024GiB)拒绝全部写。
    • 这是 TiDB 版的"4030":写入越猛,欠 compaction 的债越重,最终以"拒绝写入"的形式还。SATA SSD 上更容易触发(官方建议:磁盘吞吐到顶时要么换 NVMe,要么用更高压缩比算法拿 CPU 换磁盘)。
    • 跨机房再叠一层:Raft 多数派确认,写入要同步到至少 2 个数据中心;官方旧 FAQ 建议跨中心延迟 5ms 以下;同城双中心(<3ms)可双活承担写入,异地(20ms 专线)只能做灾备——写延迟与物理距离强相关,这是 Raft 写在架构里的税。
    • 社区实测(跨 IDC+GCP POC):跨区后 TPS 下降,但"永远 0 Error"、无死锁无写冲突——乐观锁模型跨区是"降速不降正确性",和 MySQL 主从跨区的"冲突靠人肉"形成对比。
  • 选型含义:写密集型业务必须做 compaction/流控指标监控(pending compaction bytes)和写入限流预案;磁盘选型直接决定写上限,SATA 在 TiDB 上是"能用但随时可能交税";多活架构先看专线延迟再谈方案。
  • 来源:官方文档(tidb-troubleshooting-map.md 流控章节、performance-tuning-methods.md 写路径、旧版 FAQ 多活)、社区实测。

深水区六:DDL、GC 与升级——运维的三连坑

  • 机制:DDL 在线异步变更(多状态流转);GC 默认每 10 分钟清理 MVCC 旧版本;升级 via TiUP 滚动重启。
  • 推到边缘:
    • DDL 历史上串行执行(单 DDL owner);v6.2 起引入并发 DDL 框架,但 v6.2→v6.5 升级时 KV 队列改表队列曾导致升级卡住(官方升级 FAQ 有专门章节:插件加载、kill -9、DDL owner 变更都可能卡住升级)。
    • v6.3 引入元数据锁、v6.5 默认开启:有未提交事务的表上做 DDL 会被阻塞——"在线 DDL"不等于"随时 DDL",业务高峰期的 ADD INDEX 可能排队到天荒地老。
    • information schema is changed(错误 8027 类场景):TiDB Server 的 schema 版本落后时 SQL 直接报错,根因常是 TiDB 与 PD 间的网络抖动。
    • 长事务/卡住的 TiCDC 会拖住 GC safepoint:MVCC 旧版本删不掉,磁盘空间持续膨胀——"删了数据空间不释放"的经典困惑,根因往往是 GC 被某个慢消费者卡住。
    • 社区个案(得物升级实践,v5.3.3→v7.5.x):v4.x 时代 TiKV 节点运行超过 2 年会自动重启;v6.5 以前 TiCDC 经常延迟/OOM;升级后 v7.5 优化器一度倾向全表扫描(215 亿行表走全表扫 60 秒超时,绑索引 0.4 秒),靠 tidb_opt_prefer_range_scan / SPM 绑定解决——"升级≠变快,执行计划可能先变差"。
    • 原地升级不支持回退、大版本跨度要递增升级且抖动翻倍;得物最终全部采用"迁移升级"(搭新集群 + TiCDC 同步),代价是双倍机器成本。
  • 选型含义:DDL 只在低峰做、做之前查长事务;升级先在测试环境完整演练、准备 SPM/绑定预案;GC 监控(safepoint 推进)是日常巡检项;把"升级窗口"写进年度运维预算。
  • 来源:官方文档(upgrade-tidb-using-tiup.md 升级 FAQ、tidb-troubleshooting-map.md DDL 章节、error-codes.md);社区实测(得物升级实践,2025 年底)。

深水区七:MySQL 兼容的深水区——"95% 兼容"的剩下 5%

  • 官方兼容性文档(mysql-compatibility.md)明确列出不支持:存储过程/函数、触发器、事件、自定义函数、全文索引、GIS/空间类型、XA 语法、CREATE TABLE AS SELECT、SKIP LOCKED、降序索引、CHECK/CHECKSUM/REPAIR/OPTIMIZE TABLE、HANDLER、列级权限、LATERAL 派生表执行。
  • 推到边缘:
    • 传统系统(ERP/财务/电信计费)恰恰是存储过程+触发器+事件的重度用户——这类系统迁 TiDB 不是"改配置"而是"重写业务逻辑",迁移成本从"低"直接跳到"高"。
    • 外键约束长期是实验特性(v6.x 引入),成熟度不及 MySQL——依赖外键做数据完整性的业务要重新评估。
    • 字符集仅支持 ascii/latin1/binary/utf8/utf8mb4/gbk/gb18030;lower_case_table_names 等行为有差异;SELECT ... FOR UPDATE 是乐观语义(冲突在提交时检查)而非 MySQL 的加锁语义——"语法一样,语义不同"是最贵的坑。
    • 反例:互联网业务(无存储过程、主键多为自增/雪花 ID)迁移确实平滑——兼容性的"坑度"完全取决于业务对 MySQL 偏门特性的依赖度。
  • 选型含义:迁移评估第一步是扫一遍"用了哪些 MySQL 独有特性",而不是跑通几条 CRUD 就宣布兼容;POC 必须包含存储过程/触发器/全文检索等"有无"清单。
  • 来源:官方文档(mysql-compatibility.md);社区共识(迁移指南、AskTUG 高频问题)。

客户经验

内核 AUTO_RANDOM / SHARD_ROW_ID_BITS —— 热点打散,迁移第一课

一句话
自增主键在 TiDB 里会把全集群的写压到单个 Region、退化为单机写——AUTO_RANDOM 是官方给的打散机制,也是 MySQL 迁移者最普遍的坑、迁移 checklist 第一项。
窄场景
从 MySQL 迁过来的高并发写入 workload(订单、流水、秒杀);主键是自增 ID 或时间戳单调递增的表。
机制
TiDB 按 key range 把数据切成 Region 分散到 TiKV 节点。自增主键的新行 key 单调递增,永远落在最末一个 Region——整个集群的写吞吐退化为单个 TiKV 的写吞吐。AUTO_RANDOM 在事务提交时为键分配随机分片位,把插入均匀打散到各 Region;SHARD_ROW_ID_BITS 对隐式 rowid 表起同样作用。代价是主键不再单调,依赖 ID 单调性的业务逻辑要改。
生产验证
sql-lab 社区案例:促销期单台 TiKV CPU 100%、其余节点空闲,根因是自增主键热点,改为 AUTO_RANDOM 后打散解决——完整的"现象→根因→解法"生产记录(https://github.com/slowleelab/sql-lab/blob/HEAD/docs/cases/tidb/83-auto-random.md)。
竞品差距
CockroachDB 默认推荐 UUID 主键(随机),坑相对浅但用户仍需显式设计;YugabyteDB 默认 hash 分片打散,此坑较少;MySQL 单机无分片概念,迁移者带着"自增主键天经地义"的习惯过来。这是"MySQL 兼容"承诺下藏得最深的习惯税——兼容的是协议,不兼容的是单机时代的心智。
证据等级
社区生产案例(具名复现步骤的踩坑记录)
最后核验
2026-10-01

内核 TiFlash 列存 MPP —— 真 HTAP

一句话
同一集群内行存(TiKV)与列存(TiFlash)物理隔离、Raft Learner 异步同步、优化器按代价自动路由——TP 与 AP 互不干扰的真 HTAP。
窄场景
实时风控、运营看板、"交易库上的实时报表"——需要对分钟级新鲜数据做分析查询,但不能接受 ETL 到数仓的小时级延迟,也不想再运维一套 ClickHouse。
机制
TiFlash 是独立的列存节点(与 TiKV 物理隔离、资源不争抢),通过 Raft Learner 机制异步复制行存数据并转为列式存储,延迟通常在秒到分钟级。查询时优化器按代价模型自动选择:点查/短事务走 TiKV 行存,大扫描/聚合下推到 TiFlash 做 MPP 并行。用户侧只写 SQL,不关心数据在哪份副本上。这是"真 HTAP"与"内存加速器"路线的区别:AlloyDB 的列存是存储层内存加速,TiDB 是独立 MPP 引擎。
生产验证
xuanming-server-mmo 全球数据层选型决策实录:独立团队把 TiDB(含 TiFlash)作为全球数据层的决策过程与理由记录(https://github.com/luyuan-cpp/xuanming-server-mmo/blob/HEAD/docs/design/global-data-layer-tidb-decision.md);社区选型总结共识:"实时风控/运营看板"是 TiDB HTAP 的标准答案场景。诚实备注:TiFlash 副本有同步延迟、占额外存储,超复杂分析仍不如专用 OLAP——HTAP 的"AP"是实时报表级,不是数仓级。
竞品差距
AlloyDB 列存是内存列存加速器(与行存同节点),非独立 MPP 节点,大规模分析扩展性不及;Aurora 无原生列存;MySQL HeatWave 为 Oracle 云专属、生态封闭。开源 OLTP 里"同一集群、物理隔离、优化器自动路由"的 HTAP,TiDB 是完成度最高的。
证据等级
社区选型总结(场景共识)+ 独立团队决策实录
最后核验
2026-10-01

避坑 小数据量强行上 TiDB 是过度设计

一句话
数据量和 QPS 没到量级时,TiDB 的分布式架构是纯负担——PD/TiKV/TiDB 三组件的运维复杂度与起步资源开销,不如单机 MySQL/PG。
窄场景
数据量 < 百 GB、QPS < 几千、单机能扛住的业务;没有专职 DBA/运维投入分布式集群的团队最容易中招。
机制
TiDB 最小生产拓扑是 PD×3 + TiDB×2 + TiKV×3,起步就是 8 个进程/多台机器,外加监控、备份、升级的全套分布式运维。小数据量下:没有分片收益(数据全在一个 Region)、TiFlash 用不上、AUTO_RANDOM 不需要,但运维复杂度、故障排查链路、资源成本一样不少。这是分布式数据库的通用税,TiDB 因为"MySQL 兼容"的营销让人误以为它是"更好的 MySQL",这条反向招牌才格外重要。
生产验证
社区选型总结共识:"小数据量强行上 TiDB 是过度设计"——多篇结论一致(本次未留存逐字 URL,见证据等级);社区甚至有"TiDB 单机版"的呼声,侧面印证这条吐槽的普遍性。
竞品差距
MySQL/PG 单机场景的运维简单度与资源效率碾压;OceanBase 同样有"小规格起步重"的问题。TiDB 的招牌只在"数据量/写入规模"这个窄场景成立——这是它的诚实边界。
证据等级
社区共识(多篇选型总结一致,本次未留存逐字 URL)
最后核验
2026-10-01

用户最买账的 5 点

好的也要有深度。每条 = 为什么是真的 + 边缘与限度。

  1. MySQL 迁移平滑,"换库不换栈"
    • 为什么是真的:协议层兼容 MySQL 5.7,JDBC/ORM/中间件零改造;DM 支持全量+增量(binlog)迁移,Lightning 做 TB 级初始导入;社区有大量"不停服从 MySQL 切 TiDB"的完整 runbook。
    • 边缘与限度:平滑的是"协议和常用语法",深水区七的不兼容清单一字未动;AUTO_INCREMENT 语义差异要求主键改造;大事务要拆批。迁移成本取决于"你用了多少 MySQL 的偏门特性",和库本身无关。以及 DM 自己的坑(大 binlog 文件 position 处理、bad connection 重试)要算进迁移风险。
    • 来源:官方文档(dm/dm-overview.md、mysql-compatibility.md);社区共识。观察版本:v8.5。
  2. 在线水平扩展,"加机器就行"
    • 为什么是真的:存算分离 + PD 自动调度,加 TiKV/TiDB 节点后数据自动均衡,无需停机、无需人工分片;v8.5 Region 默认 256MiB 后调度开销进一步降低(官方口径 OLTP 插入 +27%,厂商口径,仅作参考,不作为判决依据)。
    • 边缘与限度:扩的是"容量和吞吐上限",不是"立刻变快"——Region 迁移期间 IO/网络被均衡流量占据,高峰期扩容可能先变慢再变快;很多人为"未来 100 倍增长"付了 3 年的机器和运维税,实际 3 节点用到天荒地老。先算清楚增长曲线再谈扩展性。
    • 来源:官方 v8.5 性能解读;社区共识。观察版本:v8.5。
  3. HTAP 一站式,"一套集群两种活"
    • 为什么是真的:TiFlash Learner 实时同步 + 优化器自动选路,OLTP 和 OLAP 跑在同一套 SQL 接口上;得物模式(MySQL 做点查、TiDB 做复杂查询/分析)证明了"省掉 ETL 链路"的真实价值。
    • 边缘与限度:见深水区四——"实时"是秒级不是零延迟;TiFlash 要独立部署才不抢 OLTP 资源(多付机器钱);纯 OLAP 重查询拼性价比打不过 ClickHouse/Doris。HTAP 的甜蜜点是"交易+轻分析",不是"替代数仓"。
    • 来源:官方架构文档;社区案例(得物)。观察版本:v7.5/v8.5。
  4. 开源、高可用口碑与全球化生态
    • 为什么是真的:Apache 2.0 全开源,GitHub 高活跃,TiKV 是 CNCF 毕业项目;Raft 多副本 + 官方 RPO=0/RTO≤30s 口径;中英文档和 AskTUG 社区对国内外团队都友好——这是相对 OB/TDSQL 的结构性差异。
    • 边缘与限度:RTO≤30s 是自动故障切换,不是备份恢复(TB 级 BR 恢复是小时级,恢复还会占满集群资源——官方建议恢复到新集群);开源不等于"能自己搞定",深水区问题最终靠读源码或买订阅支持;DB-Engines 排名(第三方统计全球约 41 位)是流行度不是质量分。
    • 来源:官方文档;第三方统计(引 DB-Engines);社区共识。观察版本:v8.5。
  5. 可观测性工具链,"看得见的分布式"
    • 为什么是真的:TiDB Dashboard(热力图、Top SQL、慢查询)、Grafana 全套看板(PD TSO、Raft、TiFlash-Summary)、ADMIN SHOW DDL JOBS 等——分布式库里可观测性第一梯队,定位热点/慢 SQL 有章可循。
    • 边缘与限度:看板多不等于会看——TSO wait、pending compaction bytes、GC safepoint、TiCDC checkpoint lag 这些关键指标需要 DBA 真懂分布式原理;第三方巡检工具对照后发现仍有指标缺口。工具是放大器,不是替代品。
    • 来源:官方文档(dashboard/监控文档);第三方对照(TiDB 监控巡检差距分析,2026-09)。观察版本:v8.5。

吐槽清单

分类吐槽影响版本状态
运维坑组件多(TiDB/PD/TiKV/TiFlash/TiCDC/DM/BR/TiUP),概念体系陡峭(Region/Raft/TSO/MVCC/Placement Rules),DBA 上手慢全版本open
运维坑TiCDC v6.5 以前经常延迟/OOM;gc-ttl 默认 24h,同步中断超期则 changefeed 进 failed 不可恢复,只能重做<v6.5 为主partially-fixed(v7.5+ 改善)
运维坑TiCDC 的 checkpoint 推进是"全局木桶"——任一 Region 的 ResolvedTs 卡住,全局同步延迟就涨;慢 region 排查困难全版本open
运维坑BR 快照备份慢(社区案例:每天备份 >8h,备份期间集群负载 +30%、应用 RT 上升);恢复会占满集群资源,必须恢复到新集群/离线集群全版本partially-fixed(v7.5+ 备份效率提升 50%+;恢复占资源仍是架构现实)
运维坑原地升级不支持回退、长抖动;跨大版本要递增升级;升级可能卡住(插件/kill -9/DDL owner 变更,官方 FAQ 专章)全版本open(社区主流改用"迁移升级",代价是双倍机器)
运维坑升级后优化器可能选错计划(v7.5 倾向全表扫描案例:215 亿行表 60s 超时,绑索引 0.4s)v7.5.xpartially-fixed(SPM 绑定可解)
性能坑单机/小规模性能明显低于 MySQL(社区实测 read-heavy -58%~-81%)——架构固定成本,调优抹不掉全版本open(架构固有)
性能坑高频小事务下 TSO 成瓶颈(官方调优文档承认),缓解手段都是"降级"(低精度 TSO/合并事务/并行 RPC)全版本partially-fixed
性能坑RocksDB write stall → 流控拒绝写入(ServerIsBusy);v5.2 前直接拒写,之后按阈值延迟/部分拒绝全版本partially-fixed(v5.2+ 流控机制)
性能坑AUTO_INCREMENT 尾部热点;SHARD_ROW_ID_BITS 开太大放大 RPC/CPU全版本partially-fixed(AUTO_RANDOM 为官方推荐替代)
兼容坑不支持存储过程/触发器/事件/全文索引/GIS/XA/CTAS/SKIP LOCKED 等(官方文档逐项列出)全版本open
兼容坑外键约束长期实验特性,成熟度不及 MySQLv6.x+open(GA 进展待验证)
兼容坑单行 6MB / 单事务默认 100MB 上限;大事务 ETL 必须拆批全版本partially-fixed(v8.0 bulk DML 绕过限制)
兼容坑DDL 有坑:decimal 精度不支持修改、元数据锁阻塞 DDL、schema 版本过期报 8027全版本open
成本坑硬件门槛高(TiKV 要求 NVMe SSD、官方建议 8 核 32GB+ 起步);3 副本存储冗余;小规模部署"杀鸡用牛刀"全版本open
生态坑无 Oracle 兼容,"去 O"场景不适用;PG 生态用户迁过来同样要重写全版本open

判决

  • 一句话定位:为 MySQL 生态准备的分布式"升级舱"——把分库分表和 ETL 的复杂度收进数据库内部,代价是架构固定成本、更高的硬件门槛和陡峭的运维学习曲线。
  • 适合谁:
    • MySQL 技术栈、数据量超过单机上限(TB 级起)又不想做分库分表的互联网业务;
    • 需要"交易 + 秒级分析"同库的 HTAP 场景(订单/风控/行为分析);
    • 做多业务数据汇聚、复杂查询下放到 TiDB、点查留在 MySQL 的"双跑"架构;
    • 需要多云/出海、看重全开源不被厂商锁定的团队。
  • 不适合谁:
    • 数据量 <100GB 的小库——单机 MySQL 更快、更便宜、更省心;
    • 重度依赖存储过程/触发器/全文索引/GIS 的传统系统(迁移=重写);
    • "去 O"替换 Oracle 的信创场景(无 Oracle 兼容);
    • 团队无专职 DBA 又想"装完不管";
    • 纯 OLAP 重查询(ClickHouse/Doris 性价比更高)。
  • 迁移成本:
    • MySQL → 低-中:协议兼容,DM 全量+增量成熟;存储过程/触发器需重写,自增主键建议改 AUTO_RANDOM,大事务拆批,复杂 SQL 回归测试。
    • PostgreSQL → 中高:无 PG 协议兼容,应用层改造为主。
    • Oracle → 高:无 Oracle 兼容模式,重度 Oracle 特性基本等于重构;"去 O"场景 TiDB 不在候选名单。

来源与待验证清单

  • 版本与配置:PingCAP 官方文档(tidb-configuration-file.md,含 v9.0.0 配置项;v8.4+ 的 tidb_tso_client_rpc_mode)
  • 事务机制与限制:官方 transaction-overview.md(6MB/100MB 沿革、v6.5 会话内存配额、v8.0 bulk DML)、error-codes.md(8002/8004/8005/8025/8027/9001)
  • TSO 与性能调优:官方 performance-tuning-config.md(高频小事务 TSO 瓶颈、低精度 TSO、并行 RPC)、performance-tuning-methods.md(TSO wait 占比、跨机房延迟实例)
  • 兼容性:官方 mysql-compatibility.md(不支持清单逐项);auto-increment.md(AUTO_INCREMENT 热点警告与 AUTO_RANDOM 推荐)
  • DDL/升级/BR/TiCDC:官方 upgrade-tidb-using-tiup.md(升级 FAQ)、tidb-troubleshooting-map.md(DDL 卡住、RocksDB write stall 流控、DM/TiDB Lightning 故障)、tidb-upgrade-migration-guide.md;TiFlow 官方设计文档(TiCDC ResolvedTs/Owner/Capture 机制)
  • 路线图:官方 tidb-roadmap.md(订阅版本功能差异、不限大小事务、PD 路由微服务化、TiCDC 新架构;2024 底/2025 年中规划,2026 年落地进度待验证)
  • 社区实测:得物 TiDB 升级实践(2025-11:v5.3.3→v7.5.x);MySQL vs TiDB POC(2026-09 更新:单机读 -58%~-81%、跨区 0 error)
  • 社区共识(AskTUG/CSDN/掘金高频主题):<100GB 不用 TiDB、AUTO_RANDOM 替代自增、纯 OLAP 选 ClickHouse/Doris、迁移升级优于原地升级
  • 下次评审:跟踪 v9.0 GA 后的"不限大小事务"与"PD 路由微服务化"落地情况;复核外键约束 GA 进展;复核订阅版本功能差异矩阵