TiKV 是 TiDB 的"数据仓库",专门负责存储和高效管理数据。它的核心设计可以用几个简单的比喻来说明:
- 数据存储方式:
- 像个超大保险箱,所有数据都以键值对(key-value)的形式存放[5]
- 内部使用 RocksDB(一个超高性能的本地存储引擎)来存数据,相当于保险箱里的精密储物格
- 数据分片机制:
- 把整个数据库切成很多小块叫 Region(类似把图书馆的书分成多个书架)[5]
- 每个 Region 默认存储约 96MB 数据,超过就自动分裂(像细胞分裂一样)
- 多副本保障:
- 每个数据块(Region)会复制3份存在不同机器上[5]
- 通过 Raft 协议(类似多方签字的保密协议)确保所有副本数据一致[5]
- 只有主副本(Leader)能处理写入,其他副本(Follower)只同步数据
- 分布式事务:
- 采用两阶段提交协议(类似买房时的"定金+尾款"分步确认)[5]
- 保证跨机器操作也能维持ACID特性(要么全成功,要么全失败)
- 智能调度:
- PD调度中心会监控所有TiKV节点的状态[3]
- 自动平衡数据分布(像智能快递分拣系统把包裹均匀分配)
- 节点下线时自动转移数据(避免快递网点关闭导致丢件)[3]
- 特殊能力:
- 协处理器(Coprocessor)能分担部分计算任务(像仓库工人帮你简单打包)[2]
- 支持快速数据快照(Snapshot)用于备份和恢复[6]
关键特点:
- 横向扩展:加机器就能扩容(像租更多仓库)[5]
- 高可用:少数机器宕机不影响服务(多重备份保障)
- 低延迟:优化读取路径保证查询速度[6]
- 弹性:数据和负载自动均衡分布[5]
简单说,TiKV就像一个有超能力的智能仓库:
- 自动分区分层存放货物(数据分Region)
- 每个货品备3份存在不同位置(多副本)
- 有严格出入库流程保证安全(Raft协议)
- 支持跨仓库大型交易(分布式事务)
- 7x24小时有人值守调度(PD协调)[3][5]
















