Skip to content

TiDB 中文知识库 ​

本页承担 README 职责:介绍知识库定位、目标读者、阅读路线、完整目录、版本与默认假设、示例约定、更新规则与 RAG 使用建议。

TiDB 是兼容 MySQL 协议的分布式 SQL 数据库,以 Raft 多副本与分布式事务组织行存数据,并通过 TiFlash 支持混合事务与分析处理(Hybrid Transactional/Analytical Processing,HTAP)。本知识库用于系统学习、故障检索与检索增强生成(Retrieval-Augmented Generation,RAG);可用性和性能须结合真实拓扑、容量与业务负载评估。

一、目标读者 ​

读者使用方式
有 MySQL 基础的开发工程师关注架构、事务、SQL 优化、MySQL 兼容性与迁移(03、13-24、32)
DBA / SRE关注部署运维、备份恢复、监控、排障手册(02、28-30、排障 20 篇)
架构师关注整体架构、HTAP、容量与资源管控、Placement(03、31、27、30、33)
数据/分析工程师关注 TiFlash、MPP、HTAP 选路与数据新鲜度(07、18、31)

二、版本基线与默认假设 ​

  • 版本基线:TiDB Community v8.5.0 LTS(Long-Term Support,长期支持)。v7.5 仅在已核查的差异处对照;v8.5 后续补丁新增能力逐项标号。该基线用于知识与实验复现,生产补丁须重新评估维护期、缺陷和升级路径。
  • 部署形态:生产级 Linux 集群,优先使用 TiUP 管理;涉及差异处标注 TiDB Operator / Kubernetes。
  • 安全策略:默认只读诊断;任何写入、变更、重启、缩容、Leader 驱逐、恢复覆盖等操作均单独标注危险等级,并给出前置检查、影响、回滚与后验证。
  • 示例约定:命令中的地址、集群名、库表名均为占位符(如 <pd-address>、<cluster-name>、<db>、<table>),不含真实凭证。性能结论均须结合硬件、数据量、并发、版本、拓扑与测试方法,否则仅作定性建议。
  • 验证边界:last_verified 表示编辑与来源核查日期,不表示生产实测。SQL、故障注入与恢复演练尚未在真实 TiDB 集群执行;详见审查记录。
  • 部署约定:默认 PD 集成部署、TiKV Raft Engine;TiDB Operator 只提供差异说明,不宣称已完成 Kubernetes 实验。

三、阅读路线 ​

第一次使用从快速开始进入;事务行为通过Session A/B 实验复现;遇到问题先查FAQ或Runbook。

  • 分布式原理路线:03 → 08 → 09 → 10 → 06 → 05 → 19 → 20 → 21
  • 事务专题路线:19 → 20 → 21 → 22 → 23 → 24 → 25 → 26
  • HTAP/分析路线:07 → 18 → 31 → 33
  • 迁移路线:32(兼容性与迁移)→ 28(备份恢复)→ 01(版本选择)
  • SRE 排障路线:先读排障手册总览,再按现象进入具体条目

四、完整目录 ​

1、基本原理(33 篇) ​

  1. 版本选择与兼容性
  2. TiUP 部署与升级
  3. 总体架构与请求链路
  4. TiDB Server(SQL 层)
  5. PD 调度与元数据
  6. TiKV 存储节点
  7. TiFlash 列存副本
  8. Region 与副本
  9. Raft 复制与提交
  10. Leader 选举与租约
  11. RocksDB 存储引擎
  12. LSM 与 Compaction
  13. SQL 执行流程
  14. 优化器与统计信息
  15. 主键与聚簇索引
  16. 二级与联合索引
  17. 执行计划诊断
  18. MPP 与列存计算
  19. TSO 与时间模型
  20. MVCC 与快照读
  21. 两阶段提交
  22. 异步提交与 1PC
  23. 悲观事务与锁
  24. 乐观事务与冲突
  25. 锁解析与事务恢复
  26. GC 与 Safe Point
  27. Placement Rules 与隔离
  28. 备份恢复与 PITR
  29. 监控、日志与 SLO
  30. 容量、安全与变更清单
  31. HTAP 混合负载与选路
  32. MySQL 兼容性与迁移
  33. 资源管控与资源组

2、常见线上问题(20 篇) ​

3、交付类文档 ​

4、源文件目录树 ​

text
docs/notes/database/tidb/
├── index.md                  # 总入口
├── quick-start.md            # 环境、拓扑、SQL 优化前后对照
├── transaction-lab.md         # Session A/B 实验
├── principles/               # 原理总览 + 33 篇
├── incidents/                # 症状总览 + 20 篇
├── glossary.md               # 中英文术语
├── faq.md                    # 常见问题
├── compatibility-matrix.md   # MySQL 兼容性与版本差异
├── coverage-matrix.md        # 主题 × 组件 × 读者 × 版本 × 状态
├── runbook.md                # 运维决策树
├── reference-index.md        # 来源、命令、配置、变量、指标索引
├── audit.md                  # 事实核查与限制
└── prompt.md                 # 原始生成约束,历史附件

本知识库的源文件与公开路由现已统一到 docs/notes/database/tidb 和 /notes/database/tidb/;旧 docs/database/tidb 目录及 /database/tidb/ 页面不再保留。

五、核心组件与数据流 ​

  • TiDB Server:无状态 SQL 层,负责解析、优化、执行与 Coprocessor 下推,可水平扩展。
  • PD(Placement Driver):保存集群元数据、分配时间戳预言机(Timestamp Oracle,TSO)、调度 Region 与 Leader。
  • TiKV:行式键值存储,按 Region 切分并以 Raft 多副本保证一致性。
  • TiFlash:列式存储,通过 Raft Learner 同步 TiKV 数据(不是异步 ETL),服务分析查询与 MPP。

六、内容更新规则 ​

  1. 版本纪律:v7.5 与 v8.5 行为不一致时分别标注,不混为一谈;不把实验特性、Nightly 或废弃特性写成稳定通用能力。
  2. 证据优先:性能与故障结论必须由指标、日志、执行计划或系统表证据支撑;不做单点归因。
  3. 不臆造:无法确认的信息标注"需按对应版本官方文档核验",并给出验证方法。
  4. 风险显式化:DROP / TRUNCATE / unsafe recover / 缩容 / Leader 驱逐 / 恢复覆盖等操作必须标注危险等级并给回滚方案。
  5. 术语统一:全库使用 术语表 的中英文对照;组件职责与各类 Leader 不混用。
  6. 交叉引用完整:新增内容需回填相关文章的"相关主题",避免断链。

七、RAG 使用建议 ​

  • 按文档切分:每篇是自包含知识单元,建议以"文档 + 二级标题"为切分粒度,不要拆散代码块与表格。
  • 利用 frontmatter:title / category / tags / components / applicable_versions / risk_level 可作为过滤与召回增强字段;可按 components 或 applicable_versions 过滤。
  • 术语归一:结合 术语表 做同义词归一(如"学习者副本 / Learner"、"两阶段提交 / 2PC")提升召回率。
  • 排障召回:排障文章的"现象与影响""假设与证据"章节适合按症状检索。

八、检索关键词 ​

TiDB、分布式数据库、TiKV、PD、TiFlash、Raft、Region、MVCC、TSO、两阶段提交、乐观事务、悲观事务、Async Commit、GC、HTAP、MPP、MySQL 兼容性、数据迁移、TiUP、BR、备份恢复、监控、SLO、热点、排障、RAG 知识源。

ICP 备案号待补充 · Gitee 主页