TiDB-X-CLOUD.202603.1 Release Notes
发布日期:2026 年 7 月 16 日
适用的 TiDB Cloud 计划:TiDB Cloud Essential 和 TiDB Cloud Premium
TiDB X 内核版本:TiDB-X-CLOUD.202603.1
从 2026 年 7 月 16 日起,新创建的 TiDB Cloud Essential 和 TiDB Cloud Premium 实例默认使用的内核版本为 TiDB-X-CLOUD.202603.1。
在 TiDB-X-CLOUD.202603.1 中:
202603表示该内核版本的基线代码分支创建于 2026 年 3 月,这与发布日期不同。1表示这是基于TiDB-X-CLOUD.202603基线分支构建的第一个补丁版本。
功能特性
性能
针对某些有损 DDL 操作(例如
BIGINT → INT和CHAR(120) → VARCHAR(60))引入了显著的性能提升:在不发生数据截断的情况下,这些操作的执行时间可从数小时缩短到数分钟、数秒,甚至数毫秒,性能提升可达数十倍到数十万倍 #63366 @wjhuang2016 @tangenta @fzzf678优化策略如下:
- 在严格 SQL 模式下,TiDB 会在类型转换期间预检查潜在的数据截断风险。
- 如果未检测到数据截断风险,TiDB 仅修改元信息,并尽可能避免重建索引。
- 如果必须重建索引,TiDB 会使用更高效的 ingest 过程,从而显著提升索引重建性能。
下表展示了在一个包含 114 GiB 数据、6 亿行记录的表上进行基准测试时的性能提升示例。测试集群由 3 个 TiDB 节点、6 个 TiKV 节点和 1 个 PD 节点组成。所有节点均配置为 16 个 CPU 核心和 32 GiB 内存。
请注意,以上测试结果基于 DDL 执行期间未发生数据截断这一前提条件。该优化不适用于有符号整数型与无符号整数型之间的转换、字符集之间的转换,或带有 TiFlash 副本的表。
更多信息,参见文档。
可观测性
支持为慢查询定义多维度、细粒度的触发规则 #62959 #64010 @zimulala
在 TiDB Cloud 中,默认将执行时间超过 300 毫秒的 SQL 查询视为慢查询。你可以在 TiDB Cloud console 的 Diagnosis 页面中的 Slow Query 页签查看慢查询。
TiDB Cloud 现在提供了对慢查询日志更灵活的控制方式。你可以使用
tidb_slow_log_rules系统变量,在会话和 SQL 级别基于Query_time、Digest、Mem_max和KV_total等条件定义多维度的慢查询日志输出规则。你还可以使用WRITE_SLOW_LOGhint 强制为特定 SQL 语句记录慢查询日志。这使得对慢查询日志的控制更加灵活且更细粒度。更多信息,参见文档。
SQL
支持在
FOR UPDATE OF子句中使用表别名 #63035 @cryo-zd在此版本之前,当
SELECT ... FOR UPDATE OF <table>语句在加锁子句中引用表别名时,TiDB 可能无法正确解析该别名,即使别名有效,也会返回table not exists错误。TiDB 现已支持在
FOR UPDATE OF子句中使用表别名。TiDB 现在可以从FROM子句中正确解析加锁目标,包括使用别名的表,从而确保行锁按预期生效。这提升了与 MySQL 的兼容性,并使在使用表别名的查询中,SELECT ... FOR UPDATE OF语句更加稳定可靠。更多信息,参见文档。
支持部分索引,以减少索引存储和 DML 维护开销 #62664 #62761 #62758 #63447 #64344 @YangKeao @winoros @wjhuang2016
现在,TiDB 支持部分索引,即仅为满足索引
WHERE子句中定义谓词的行建立索引。你可以通过CREATE INDEX ... WHERE ...、ALTER TABLE ... ADD INDEX ... WHERE ...,或在CREATE TABLE中定义索引来创建部分索引。当你经常基于特定条件查询某个子集的行,或者需要仅在特定条件下生效的唯一约束时,部分索引会非常有用。由于谓词之外的行不会写入索引,部分索引有助于减少索引存储,并可降低
INSERT、UPDATE和DELETE操作期间的索引维护开销。为了有效使用部分索引,请定义与常见查询中过滤条件相匹配的谓词。只有当查询谓词与部分索引谓词匹配或可推出该谓词时,TiDB 才会选择部分索引。当前,部分索引谓词支持基础比较运算符(
=,!=,<,<=,>,>=)、IS NULL、IS NOT NULL以及带常量值的IN谓词。更多信息,参见文档。
兼容性变更
MySQL 兼容性
改进项
- 增强 Parquet 文件的解析机制,以提升 Parquet 格式数据的导入性能 #62906 @joechenrh
- 将
tidb_analyze_column_options的默认值改为ALL,以默认收集所有列的统计信息 #64992 @0xPoe - 优化
IndexHashJoin算子的执行逻辑,在特定 JOIN 场景中使用增量处理,避免一次性加载大量数据,从而显著降低内存使用并提升性能 #63303 @ChangRui-Ryan - 新增全局系统变量
tidb_enable_batch_query_region,用于控制 TiDB 是否对 PD 使用批量 Region 查询,以提升获取 Region 信息的效率;该变量默认关闭 #58439 #8690 @JmPotato - 对具有大量索引的表上的查询,优化器会在代价估算前裁剪无关索引,从而提升优化器性能,减少查询规划时间,并避免不必要的全范围越界估算 #63856 @terry1purcell @qw4990
- 支持对匹配前缀索引的
ORDER BY ... LIMIT/OFFSET查询进行部分有序索引优化。当tidb_opt_partial_ordered_index_for_topn设置为COST时,TiDB 可以利用索引的部分有序性来减少全表扫描,并提升TOPN查询性能 #63280 #65813 #66338 @elsa0520 @xzhangxian1008 @winoros - 缓解在高分区表且使用本地索引时,
IndexLookUp查询产生的 Coprocessor 请求突发问题,以提升查询稳定性并减少性能抖动 #67545 @gengliqi - 通过减少执行期间不必要的表达式缓冲区分配,优化
INSERT ... ON DUPLICATE KEY UPDATE语句的 CPU 和内存使用 #65003 @windtalker - 优化时间戳推进和 Leader 选举的逻辑 #9981 @bufferflies