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 篇)
- 版本选择与兼容性
- TiUP 部署与升级
- 总体架构与请求链路
- TiDB Server(SQL 层)
- PD 调度与元数据
- TiKV 存储节点
- TiFlash 列存副本
- Region 与副本
- Raft 复制与提交
- Leader 选举与租约
- RocksDB 存储引擎
- LSM 与 Compaction
- SQL 执行流程
- 优化器与统计信息
- 主键与聚簇索引
- 二级与联合索引
- 执行计划诊断
- MPP 与列存计算
- TSO 与时间模型
- MVCC 与快照读
- 两阶段提交
- 异步提交与 1PC
- 悲观事务与锁
- 乐观事务与冲突
- 锁解析与事务恢复
- GC 与 Safe Point
- Placement Rules 与隔离
- 备份恢复与 PITR
- 监控、日志与 SLO
- 容量、安全与变更清单
- HTAP 混合负载与选路
- MySQL 兼容性与迁移
- 资源管控与资源组
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。
六、内容更新规则
- 版本纪律:v7.5 与 v8.5 行为不一致时分别标注,不混为一谈;不把实验特性、Nightly 或废弃特性写成稳定通用能力。
- 证据优先:性能与故障结论必须由指标、日志、执行计划或系统表证据支撑;不做单点归因。
- 不臆造:无法确认的信息标注"需按对应版本官方文档核验",并给出验证方法。
- 风险显式化:
DROP/TRUNCATE/ unsafe recover / 缩容 / Leader 驱逐 / 恢复覆盖等操作必须标注危险等级并给回滚方案。 - 术语统一:全库使用 术语表 的中英文对照;组件职责与各类 Leader 不混用。
- 交叉引用完整:新增内容需回填相关文章的"相关主题",避免断链。
七、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 知识源。
