同一条查询,两条路 —— 事务点查走行存,分析扫描走列存;切换三种场景,看 TiDB 怎么自动选路
列存副本以 Region 为单位与行存对齐:TiFlash 中的 Region 副本与 TiKV 中完全对应,且会跟随 TiKV 中的 Leader 副本同时进行分裂与合并。图中两条弧线语义不同:上弧是持续进行的异步复制,下弧是读取前的进度校对 —— 平时不读,它不打扰任何人。
异步复制,不阻塞写入。TiFlash 中的副本以特殊角色(Raft Learner)进行异步的数据复制 —— 当 TiFlash 节点宕机或网络高延迟时,TiKV 的业务仍能确保正常进行。
不会 —— 读前先校对。每次收到读取请求,TiFlash 中的 Region 副本会向 Leader 副本发起进度校对(一个非常轻的 RPC 请求),进度覆盖读取所需的数据之后才响应读取;读取时通过 Raft 校对索引配合 MVCC 获得 Snapshot Isolation 的一致性隔离级别。
列存 + MPP 并行。TiFlash 支持 MPP 模式的查询执行,即在计算中引入跨节点的数据交换(data shuffle 过程)。用 EXPLAIN 查看执行计划:结果里出现 ExchangeSender 与 ExchangeReceiver 算子,就表明 MPP 已生效。
写入必须先经过 TiKV。TiFlash 暂时无法直接接受数据写入,任何数据必须先写入 TiKV 再同步到 TiFlash;且部署后默认不会同步任何数据 —— 要按表构建副本:ALTER TABLE ... SET TIFLASH REPLICA 1。
grep avx2 /proc/cpuinfo 有输出;Linux ARM64 平台要求 ARMv8 架构。
口径来源(已核验 · 2026-09-16 · TiDB 官方文档 stable 线 / release-8.5)
· 来源:TiFlash 简介、使用 MPP 模式(docs.pingcap.com/zh/tidb/stable)。
以上带虚线的条目均可点击,查看官方原文、适用版本与文档链接 —— 琥珀色虚线表示「官方未列明,因此本作品一个字都不写」。
系列导航:01 Multi-Raft 日志复制 · 02 Region 分裂与 PD 调度 · 03 分布式事务 2PC · 05 Raft 选举与故障转移
按主键 / 索引定位到单个 Region,读取几十行 —— 行存直接取整行,TiFlash 不参与这条查询。
tidb_allow_mpp = on(默认)
tidb_enforce_mpp = off(默认)
部署硬性前提:CPU 支持 AVX2(Linux AMD64)