
导语
TiDB 8.5.7 已于 2026 年 7 月 9 日正式上线。本次更新覆盖 TiDB、TiKV、PD、TiFlash、TiCDC、DM 等组件,共带来 14 项兼容性变更、11 项系统变量变更、19 项配置参数变更、45 项改进提升与 62 项错误修复。
其中 6 项实用新功能值得重点关注,下面为大家逐一介绍。
TiDB 8.5.7 release note:https://pingkai.cn/docs/tidb/stable/release-8.5.7
1 部分索引:按需构建,缩小索引体积
TiDB 8.5.7 开始支持部分索引。你可以通过 CREATE INDEX ... WHERE ...
、ALTER TABLE ... ADD INDEX ... WHERE ...
,或在 CREATE TABLE
定义索引时指定 WHERE
过滤条件,只为满足条件的行创建索引项。
这一功能对查询集中在特定数据子集的场景尤其有用。例如,一张订单表的大部分查询只关心状态为 "active" 的行,可以这样为活跃数据建索引:
CREATE INDEX idx_active_orders ON orders (customer_id) WHERE status = 'active';
不满足 WHERE
条件的行不会被写入索引,有助于节省索引存储空间,INSERT
、UPDATE
、DELETE
操作期间的索引维护开销也相应降低。此外,需要对特定条件下的行施加唯一约束时,部分唯一索引同样适用。
使用上需要注意,优化器只有在查询的谓词与部分索引的谓词匹配或能被推导为满足索引条件时,才会选择该索引。建议在定义部分索引时,使谓词与常用查询的过滤条件保持一致。目前支持的谓词类型包括基本比较运算符(=
、!=
、<
、<=
、>
、>=
)、IS NULL
、IS NOT NULL
,以及带常量值的 IN
谓词。
2 CPU 感知的热点 Region 调度
在流量维度之外,PD 的热点调度新增了基于 TiKV CPU 使用情况的调度维度。TiKV 在 Store 心跳中上报热点 Region 的读取 CPU 使用量,PD 基于此维度可以更准确地识别那些 QPS 或字节吞吐量看似均衡、但 TiKV CPU 使用量仍不均衡的读热点。
当集群中 TiKV 节点的 CPU 算力不同(跨代次硬件混部或分批扩容),或者不同查询类型的 CPU 开销差异较大,这一能力有助于提升读取负载均衡。
此外,PD 新增了相关统计指标和配置项,包括 hot store statistics 中的 cpu-read-rate
字段,以及 min-hot-cpu-rate
、cpu-rate-rank-step-ratio
调度器配置。
3 TiCDC 表路由:同步时映射库表名
TiCDC 新架构在 v8.5.7 支持表路由功能。你可以在 Changefeed 的 sink.dispatchers
配置中使用 target-schema
和 target-table
,将上游表映射到指定的下游库名或表名。
该功能适用于下游库表命名规范与上游不一致,或需要将多个源库同步到同一个目标库并保持目标表名唯一的场景。通过表路由,你可以为下游系统提供稳定且符合预期的目标库表名。
需要注意,该功能仅适用于 TiCDC 新架构。
4 单用户连接数限制
从 v8.5.7 开始,你可以使用系统变量 max_user_connections
限制单个用户在单个 TiDB Server 实例上可建立的最大连接数(默认值为 0,表示不限制)。同时也可以在 CREATE USER
或 ALTER USER
语句中使用 WITH MAX_USER_CONNECTIONS N
为特定用户设置登录连接上限。
这有助于防止单个用户占用过多连接资源,影响其他用户的正常访问。
5 Top SQL 页面扩展:增加网络和 I/O 指标
TiDB Dashboard 的 Top SQL 页面新增 TiKV 网络流量和逻辑 I/O 指标的采集与展示。
你可以在 Top SQL 设置中打开 TiKV 网络 IO 采集(多维度)开关,查看各 TiKV 节点的 Network Bytes
和 Logical IO Bytes
指标,并支持按 By Query
、By Table
、By DB
或 By Region
维度进行聚合分析。
新增的网络和 I/O 维度与已有的 CPU 维度互补,帮助更全面地定位资源消耗热点。
6 DM 支持外键因果依赖
从 v8.5.7 开始,当 foreign_key_checks=1
且 syncer.worker-count > 1
时,DM 支持静态一对一 schema/table 路由场景下的外键因果依赖。在并行同步模式下,DM 可以正确处理涉及外键约束的表之间的数据写入顺序。
该功能有明确的使用限制:同步任务启动前,必须先在下游创建目标 schema 和外键定义;不支持多对一或分片合并路由;不支持同步过程中的动态外键 DDL;不支持 syncer.compact
或 syncer.multiple-rows
等会改变 DML 语句边界的选项;不支持在 safe mode 下同步修改主键或唯一键值的 UPDATE 语句。启用后也不允许通过热更新方式修改 worker-count
、route rules 等配置,如需修改需先停止任务,更新配置后再重启。
7 其他值得关注的变更
auto ANALYZE 效率提升
三个统计信息相关变量的默认值上调——tidb_auto_analyze_concurrency
从 1 提高至 3,tidb_auto_build_stats_concurrency
从 1 提高至 2,tidb_sysproc_scan_concurrency
从 1 提高至 4。升级上来的集群变量值保持不变,新部署的集群将直接受益于更快的统计信息收集和内部 SQL 扫描速度。
STRICT_NOT_NULL 校验
新增系统变量 tidb_enable_strict_not_null_check
,用于控制 TiDB 是否对单行 INSERT
语句执行严格的 NOT NULL
检查,从而帮助依赖此前非严格行为的工作负载降低升级风险。
当 INSERT 语句显式向 NOT NULL 列写入 NULL 值时,TiDB 执行严格校验并报错,行为与 MySQL 标准对齐。如果你的应用依赖此前写入隐式默认值的行为,可以临时将该变量设为 OFF 以平稳升级。
遥测功能废弃
从 v8.5.7 开始,TiDB 和 TiDB Dashboard 中的遥测功能 tiup telemetry enable
已废弃。
Lightning Web 界面移除
TiDB Lightning 不再支持 Web 界面,需改用命令行工具 tidb-lightning
和 tidb-lightning-ctl
,或使用 IMPORT INTO
语句。











