一、重要文档
● 【TiDB 中文文档】 https://pingcap.com/docs-cn
● 【FAQ】 https://pingcap.com/doc-FAQ-zh
● 【OPS】https://www.tidb.cc
二、TiDB 的技术原理
● 【TiDB 技术内幕】
○ 说存储 http://t.cn/RTKRRWv
○ 说计算 http://t.cn/RTKRkBh
○ 说调度 http://t.cn/RTKEZ0U
rocksdb
wiki: https://en.wikipedia.org/wiki/RocksDB
github:https://github.com/facebook/rocksdb/wiki/RocksDB-Basics
● 【TiDB 基准测试】
○ http://t.cn/RT8oi0j
● 【TiDB 最佳实践】
○ http://t.cn/RTKEWf0
● 【TiSpark】
○ 用户指南 http://t.cn/RTKEgWm
● 【TiDB 事务相关】
○ http://t.cn/RaxOmRZ
● 【Raft 相关】
○ http://t.cn/ROYYxse
● 【TiDB 在线 Schema 变更】
○ http://t.cn/RbDaPjf
三、TiDB 核心特性
● 水平线性弹性扩展
● 数据强一致的分布式事务
● SQL支持(TiDB 是 MySQL 兼容的)
● 故障自恢复的高可用
● OLTP & OLAP 混合数据库
四、TiDB 典型应用场景
● 需要弹性扩展的场景
○ 传统单机关系型数据库,比如 MySQL 对大表的支持很不友好,很容易遇到性能拐点,更
重要的是这类单机数据库读写容量有一定上限,尤其是写入流量超过一定值后,就会导致
从库同步延迟等问题,而为了解决这个问题,普遍采用分库分表 + Proxy 的方案,但分库
分表 存在业务维度选定,多维度数据冗余及一致性、SQL 限制(不能聚合、Join 等) 、全局
序列、跨库事务等等问题,TiDB 是完美的 Sharding + Proxy 替代方案。
● OLTP、OLAP 混合的场景
○ 通过在 TiKV 集群上部署多个 TiDB 或者 Tispark 节点能快速满足 OLTP、OLAP 混合需求,比
如,通过 TiDB 来解决 TP 业务或者一般复杂度的 SQL 查询;通过 TiSpark 来解决 AP 业务多
表关联的复杂 SQL 查询,由于数据 不需要 ETL, 对实时分析查询或者准实时分析查询的场景
是个绝佳方案。
● 多数据源的汇总查询
○ 比如已做分库分表 MySQL 集群或者多个 MySQL 集群之前有数据汇总查询需求,可通过
TiDB 生态工具 Syncer 、Wormhole 将多个 MySQL 数据汇总到一个大的 TiDB 集群进行
OLAP 分析。
● 大数据量下的 SQL 查询
○ TiKV 自动会将大表拆分成固定物理大小的单位进行存储,并通过下推技术进行多并发处
理,进而提升海量数据的查询性能。
● 数据强一致的高可用场景
○ 比如泛金融行业,TiDB 计算层是多节点、存储层多副本,任何一个节点故障都会自动高
可用,对应用无感知,同时数据的持久化使用 Raft 进行了同步复制,保证数据强一致和
安全。
五、安装配置 TiDB
● 【Ansible 部署方案】(强烈推荐) http://t.cn/R9vib7R
● 【TIDB 软硬环境要求】 http://t.cn/R9viLCi
六、MySQL 兼容性
● 【不支持】存储过程,视图(18年计划支持),触发器,自定义函数,外键
● 【有差异】自增 ID、DDL、事务(乐观模型)
● 【系统表差别】 http://t.cn/ROHfGjE
● 【具体参见】 http://t.cn/RKq7kxV
七、数据迁移
● 【全量导入历史数据】checker + mydumper + loader
● 【增量同步新的数据】syncer
● 【必读:导入数据最佳实践】 http://t.cn/R9iehf1
● 【具体参见】 http://t.cn/RVeUKjs
八、监控
● 【Prometheus + Grafana】 http://t.cn/R9vJh4v
● 【重要监控指标详解】 http://t.cn/R9JUEhD
○ 目前监控的指标特别多,大部分指标是供数据库开发使用,用户只需要关心 Overview 这
个面板就可以了。
九、备份和恢复
● 【具体参考】 http://t.cn/ROHfO1V
○ TiDB 本身就是高可用的架构(三副本),若有备份需求,推荐使用 mydumper 定时备份,
使用 Loader 进行恢复。
十、TiDB Roadmap
● 【具体参考】 http://t.cn/RG0JF8L
十一、公有云入口
● 【腾讯云 TiDB 入口】 https://cloud.tencent.com/product/tidb
● 【UCloud TiDB 入口】 https://www.ucloud.cn/site/product/cloudtidb.html
● 【京东云 TiDB 入口】 https://www.jdcloud.com/products/tidb
十二、用户案例
● 【北京银行】 http://t.cn/RnY8fGn
● 【 海航 】 http://t.cn/REXx0Qe
● 【 今日头条 】 http://t.cnEMf
● 【转转】 http://t.cn/R1MAXEq
● 【 摩拜单车 】 http://t.c /RnLf n/RT8FbP6
● 【 饿了么(一) 】 http://t.cn/RucuK6m
● 【 饿了么(二) 】 http://t.cn/RnsqFT6
● 【 爱奇艺 】 http://t.cn/EvErsc1
● 【 易果生鲜 】 http://t.cn/RTYVhzH
● 【 同程旅游 】 http://t.cn/RmXeNKR
● 【 去哪儿 】 http://t.cn/RTKnsL7
● 【 G7 】 http://t.cn/RQVePoX
● 【一面数据】 http://t.cn/RT9r5di
● 【凤凰网】 http://t.cn/RHRQfNT
● 【 猿辅导 】 http://t.cn/RTKnKSX
● 【 Mobikok 】 http://t.cn/Rm1F6lg
● 【 二维火 】 http://t.cn/R8bXM2f
● 【 客如云 】 http://t.cn/R1wSEJH
● 【 Ping++ 】 http://t.cn/RE5xYKn
● 【乐视云】 http://t.cn/Rnv3IVs
● 【零氪科技】 http://t.cn/REj7tSv
● 【威锐达测控】 http://t.cn/R3CrviR
● 【 盖娅互娱 】 http://t.cn/RT9r7hx
● 【游族网络】 http://t.cn/R8k4AWB
● 【FUNYOURS JAPAN】 http://t.cn/Rnoab5D
● 【特来电】 http://t.cn/RrHzUGW
● 【 万达网络 】 http://t.cn/RTKm6ds
● 【 华泰证券 】 http://t.cn/RTKmUI9
● 【 360金融 】 http://t.cn/RTKnTev
● 【中国电信翼支付】 http://t.cn/R3Wd9p3
● 【某电信运营商】 http://t.cn/RTYWADg
● 【更多案例持续放出,请关注 PingCAP 公众号】
十二、开发者文档
● 【扩展文档】
○ 知乎专栏 http://t.cn/RHWaHTD
○ TiDB Weekly http://t.cn/RHWSx0K
○ MySQL 官方文档 http://t.cn/R9hKxuD
○ 唐刘的博客 http://t.cn/RHWal5I
○ 马晓宇的知乎 http://t.cn/RHWaBaG
● 【测试相关文档】
○ 分布式系统测试那些事儿 - 理念 http://t.cn/R1zYJ57
○ 分布式系统测试那些事儿 - 错误注⼊ http://t.cn/R1zYnBM
○ 分布式系统测试那些事儿 - 信心的毁灭与重建 http://t.cn/R1zYFMY
○ 当 TiDB 遇上 Jepsen http://t.cn/R1zTyYm
○ Linearizability ⼀致性验证 http://t.cn/RNoocQY
○ 性能测试工具的 Coordinated Omission 问题 http://t.cn/R1zTNOf
○ ⾃动化错误注入测试 - 让你的猴子更加智能 http://t.cn/R1zTnqq
○ 测试分布式系统的线性⼀致性 http://t.cn/R0F9JeE
○ 为什么随机测试能有效的发现网络隔离下的 Bugs http://t.cn/R1zH22B
○ 使用 fio 进行 IO 性能测试 http://t.cn/R1zHVy6
○ go-ycsb:一个 Go 的 YCSB 移植 http://t.cn/R1zHadl
○ 使用 Chaos 测试分布式系统线性⼀致性 http://t.cn/R1zHQJN
○ TiDB Sysbench 性能对比测试报告 - v2.0.0 对比 v1.0.0 http://t.cn/R1zHeKz
○ TiDB TPC-H 50G 性能测试报告 http://t.cn/R1zQzqy
○ TiDB & 腾讯云使用及性能测试 http://t.cn/R1zQ5fH
● 【原理解析】
○ 十问 TiDB :关于架构设计的一些思考 http://t.cn/RBdRyB4
○ TiDB 源码阅读系列文章(一)序 http://t.cn/Rnf3xYS
○ TiDB 源码阅读系列文章(二)初识 TiDB 源码 http://t.cn/Rnf3qGK
○ TiDB 源码阅读系列文章(三)SQL 的一生 http://t.cn/Rnf3v1L
○ TiDB 源码阅读系列文章(四)Insert 语句概览 http://t.cn/Rnfugwq
○ TiDB 源码阅读系列文章(五)TiDB SQL Parser 的实现 http://t.cn/RnIXSVs
○ TiDB 源码阅读系列文章(六)Select 语句概览 http://t.cn/RnFlAsK
○ TiDB 源码阅读系列文章(七)基于规则的优化 http://t.cn/RmXTpLU
○ TiDB 源码阅读系列文章(八)基于代价的优化 http://t.cn/R1zj4Gj
○ TiDB 源码阅读系列文章(九)Hash Join http://dwz.cn/80KLcZ
○ TiDB 源码阅读系列文章(十)Chunk 和执行框架简介 http://t.cn/RrIZf3e
○ TiDB 源码阅读系列文章(十一)Index Lookup Join http://t.cn/RrjF0qp
○ TiDB 源码阅读系列文章(十二)统计信息(上) http://t.cn/RedTPYO
○ TiDB 源码阅读系列文章(十三) 索引范围计算简介 http://t.cn/RedTtVv
○ TiDB 源码阅读系列文章(十四)统计信息(下) http://t.cn/RgEKoCd
○ TiDB 源码阅读系列文章(十五) Sort Merge Join http://t.cn/RD8Cu0L
○ TiDB 源码阅读系列文章(十六)INSERT 语句详解 http://t.cn/RFrSgW6
○ TiDB 源码阅读系列文章(十七)DDL 源码解析 http://t.cn/RFroxyC
○ TiDB 源码阅读(十八)tikv-client(上) http://t.cn/RscYAfZ
○ TiDB 源码阅读系列文章(十九)tikv-client(下) http://t.cn/EhBIuJ8
○ 在线 Schema 变更算法 http://t.cn/RUoYxEG
○ 在线 Schema 变更解读 http://t.cn/RHWoLPT
○ 在线 Schema 变更参考 http://t.cn/RHWKaVA
○ Percolator 和 TiDB 事务算法 http://t.cn/RHWTQSV
○ TiKV 的 MVCC 机制 http://t.cn/RHWYKS2
○ TiKV 事务模型概览 http://t.cn/RHWY0WZ
○ TiKV 源码解析系列 - Placement Driver http://t.cn/RHWKZ7I
○ TiKV 源码解析系统 - PD Scheduler http://t.cn/RHWKbaI
○ TiKV 源码解析系列 - Lease Read http://t.cn/RHWjm1a
○ TiKV 源码解析系列 - multi-raft 设计与实现 http://t.cn/RHWjk4X
○ TiKV 源码解析系列 - 如何使用 Raft http://t.cn/RHWYLYs
○ TiKV 源码解析系列 - Raft 的优化 http://t.cn/RHWYxSr
● 【接口文档】
○ Google 开源的一个高性能的 RPC 框架 gRPC http://t.cn/RHWKBfN
○ 深入了解 gRPC http://t.cn/RHWjPar
○ gRPC-rs 从 C 到 Rust http://t.cn/RHWT5L2
● 【生态工具扩展】
○ TiDB Binlog 使用文档 http://t.cn/RHWpTX8