From 197d2c194f9ab13519bcc59292a3d5936905d6b2 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 5 Jun 2025 11:01:57 +0800 Subject: [PATCH 01/15] v9.0.0 release notes: add new features (v9.0-beta.2) --- releases/release-9.0.0.md | 108 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 2ca5cbc086eb..a241412ac0da 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -73,6 +73,18 @@ TiDB 版本:9.0.0 ### 可扩展性 +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + * PD 支持的微服务模式成为正式功能 (GA) [#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) tw@hfxsd 在 v8.0.0,PD 支持的微服务模式作为实验特性发布。从 v9.0.0 开始,该特性成为正式功能。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而实现 PD 的性能扩展,解决大规模集群下 PD 的性能瓶颈问题。 @@ -88,6 +100,18 @@ TiDB 版本:9.0.0 ### 性能 +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + * 在几十万甚至上百万用户数的场景下,创建用户、修改用户信息的性能提升了 77 倍 [#55563](https://github.com/pingcap/tidb/issues/55563) @[tiancaiamao](https://github.com/tiancaiamao) **tw@hfxsd** 之前的版本,当集群的用户数超过 20 万时,创建和修改用户的性能 QPS 会降低到 1。在一些 SaaS 场景,如果需要创建百万个用户,以及定期批量修改用户的密码信息,需要 2 天甚至更久的时间,对于一些 SaaS 业务是不可接受的。 @@ -143,6 +167,18 @@ TiDB 版本:9.0.0 ### 高可用 +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + * TiProxy 支持流量回放功能正式发布 (GA) [#642](https://github.com/pingcap/tiproxy/issues/642) @[djshow832](https://github.com/djshow832) **tw@hfxsd** TiProxy v1.3.0 将流量回放功能作为实验特性发布。在 TiProxy v1.4.0 版本,流量回放功能正式发布 (GA)。TiProxy 提供专有的 SQL 命令进行流量捕获和流量回放功能。你可以更加方便地捕获 TiDB 生产集群中的访问流量,并在测试集群中按照指定的速率回放这些流量,完成业务验证。 @@ -151,6 +187,18 @@ TiDB 版本:9.0.0 ### 稳定性 +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + * 新增系统变量 `MAX_USER_CONNECTIONS`,用于限制不同用户可以建立的连接数 [#59203](https://github.com/pingcap/tidb/issues/59203) @[joccau](https://github.com/joccau) **tw@hfxsd** 从 v9.0.0 版本开始,你可通过设置系统变量 `MAX_USER_CONNECTIONS` ,来限制单个用户对单个 TiDB 节点可建立的连接数,避免由于单个用户消耗过多的 [token](/tidb-configuration-file.md#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 @@ -159,6 +207,18 @@ TiDB 版本:9.0.0 ### SQL 功能 +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + * 支持对分区表的非唯一列创建全局索引 [#58650](https://github.com/pingcap/tidb/issues/58650) @[Defined2014](https://github.com/Defined2014) @[mjonss](https://github.com/mjonss) **tw@qiancai** 从 v8.3.0 开始,TiDB 支持用户在分区表的唯一列上创建全局索引以提高查询性能,但不支持在非唯一列上创建全局索引。从 v9.0.0 起,TiDB 取消了这一限制,允许用户在分区表的非唯一列上创建全局索引,提升了全局索引的易用性。 @@ -167,6 +227,18 @@ TiDB 版本:9.0.0 ### 数据库管理 +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + * TiDB 索引推荐 (Index Advisor) [#12303](https://github.com/pingcap/tidb/issues/12303) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** 索引设计在数据库性能优化中至关重要。从 v8.5.0 开始,TiDB 引入索引推荐 (Index Advisor) 功能,并持续进行改进和增强。该功能可以分析高频查询模式,推荐最优索引策略,帮助你更高效地进行性能调优,并降低索引设计的门槛。 @@ -183,6 +255,18 @@ TiDB 版本:9.0.0 ### 可观测性 +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + * 新增 TiDB Workload Repository 功能,支持将历史工作负载数据持久化存储到 TiKV 中 [#58247](https://github.com/pingcap/tidb/issues/58247) @[xhebox](https://github.com/xhebox) @[henrybw](https://github.com/henrybw) @[wddevries](https://github.com/wddevries) **tw@lilin90** 很多高频更新的负载指标和状态信息被维护在实例的内存中,这些历史负载数据可以作为数据库的一部分持久化下来。主要用于以下目的: @@ -235,8 +319,32 @@ TiDB 版本:9.0.0 ### 安全 +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + ### 数据迁移 +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + * TiCDC 引入新架构,显著提升性能、可扩展性和稳定性(实验特性)[#442](https://github.com/pingcap/ticdc/issues/442) @[CharlesCheung96](https://github.com/CharlesCheung96) **tw@qiancai** 在 v9.0.0 中,TiCDC 引入了新架构(实验特性),显著提升了实时数据复制的性能、可扩展性与稳定性,同时降低了资源成本。新架构重新设计了 TiCDC 的核心组件并优化了数据处理流程。 From d918db6b673a676f3c7c3045ae77eef819dd5ba0 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 10 Jun 2025 18:07:04 +0800 Subject: [PATCH 02/15] Update release-9.0.0.md --- releases/release-9.0.0.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index a241412ac0da..75d5d884ec49 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -253,6 +253,15 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/br/br-pitr-manual.md#进行中的日志备份与快照恢复的兼容性)。 + +* 支持表级别数据打散功能(实验特性) [#8986](https://github.com/tikv/pd/issues/8986) @[bufferflies](https://github.com/bufferflies) **tw@qiancai** + + TiDB 会自动调度,将整个集群的数据均匀分布在所有 TiKV 节点。但是,数据的调度基于整个集群,在某些情况下,可能存在整个集群数据均匀分布,但是某张表的数据在整个集群中分布并不均匀的情况。从 v9.0.0 开始,TiDB 提供实验特性:表级数据分布信息查询和数据打散功能。该功能可以查看某张表在整个集群的所有 TiKV 节点的数据分布信息,以及将某张表的数据打散。 + + 表级数据打散功能为单次执行任务,有超时时间限制。如果在超时时间内表的数据已经打散,则该任务提前结束。 + + 更多信息,请参考[用户文档](/sql-statements/sql-statement-show-distribution-jobs.md)。 + ### 可观测性 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From f6c327bbd64d91d24f5e84029eeaea5e2d4edfc9 Mon Sep 17 00:00:00 2001 From: Aolin Date: Fri, 13 Jun 2025 14:49:37 +0800 Subject: [PATCH 03/15] update new features Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- releases/release-9.0.0.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 75d5d884ec49..0c9bd9ffaf8f 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -111,7 +111,13 @@ TiDB 版本:9.0.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 +* 优化包含外键表场景下的建库建表和加列性能 [#61126](https://github.com/pingcap/tidb/issues/61126) @[GMHDBJD](https://github.com/GMHDBJD) @[River2000i](https://github.com/River2000i) **tw@hfxsd** + 在早期版本中,在部分 SaaS 场景下,当集群中的表数量达到千万级别时,创建包含外键的表会出现明显的性能瓶颈。同时,大量外键关系还会进一步拖慢 CREATE TABLE 和 ADD COLUMN 等 DDL 操作的执行效率。从本版本起,TiDB 优化了相关元信息的处理逻辑,显著提升了在超大表规模场景下的 DDL 性能。 + + 根据内部测试数据,在集群空负载、连接至 DDL owner 节点的情况下,建表速度最高可达 126 张表每秒,ADD COLUMN 操作的平均执行速度约为 45.5 张表每秒。 + + 更多信息,请参考[用户文档](链接)。 * 在几十万甚至上百万用户数的场景下,创建用户、修改用户信息的性能提升了 77 倍 [#55563](https://github.com/pingcap/tidb/issues/55563) @[tiancaiamao](https://github.com/tiancaiamao) **tw@hfxsd** 之前的版本,当集群的用户数超过 20 万时,创建和修改用户的性能 QPS 会降低到 1。在一些 SaaS 场景,如果需要创建百万个用户,以及定期批量修改用户的密码信息,需要 2 天甚至更久的时间,对于一些 SaaS 业务是不可接受的。 @@ -198,7 +204,17 @@ TiDB 版本:9.0.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 +* 客户端断连后,Server 端自动终止对应的 SQL [#60685](https://github.com/pingcap/tidb/pull/60685) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** + + 为提升资源利用率和系统稳定性,TiDB 从 v9.0.0 起引入连接中断检测机制。当客户端连接异常断开时,TiDB 会主动终止该连接上仍在执行的 SQL 语句,及时释放资源,避免无效语句长期运行,影响系统性能。 + + 更多信息,请参考[用户文档](链接)。 + +* 引入 Table mode,在数据恢复阶段将限制用户对目标表进行读写操作,提升备份恢复任务的稳定性和数据一致性 [#59008](https://github.com/pingcap/tidb/issues/59008) @[fishiu](https://github.com/fishiu)@[River2000i](https://github.com/River2000i) @[Tristan1900](https://github.com/Tristan1900) @[Leavrth](https://github.com/Leavrth) **tw@hfxsd** + + 引入了 Table Mode,当用户执行快照恢复,或者 PITR 时,目标表的 table mode 会被置为 restore,处于 restore mode 的表会禁止用户执行任何读写操作。当数据恢复完成时,table mode 会被自动置回 normal,用户可以正常读写该表,从而提升数据恢复期间的任务稳定性和数据一致性。 + 更多信息,请参考[用户文档](链接)。 * 新增系统变量 `MAX_USER_CONNECTIONS`,用于限制不同用户可以建立的连接数 [#59203](https://github.com/pingcap/tidb/issues/59203) @[joccau](https://github.com/joccau) **tw@hfxsd** 从 v9.0.0 版本开始,你可通过设置系统变量 `MAX_USER_CONNECTIONS` ,来限制单个用户对单个 TiDB 节点可建立的连接数,避免由于单个用户消耗过多的 [token](/tidb-configuration-file.md#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 @@ -218,7 +234,11 @@ TiDB 版本:9.0.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 + * 支持字符集 `gb18030` 和排序规则 `gb18030_bin` 和 `gb18030_chinese_ci` [#17470](https://github.com/tikv/tikv/issues/17470) [#55791](https://github.com/pingcap/tidb/issues/55791) @[cbcwestwolf](https://github.com/cbcwestwolf) *tw@hfxsd* + + 从 v9.0.0 开始,TiDB 支持 `gb18030` 字符集和 `gb18030_bin` 和 `gb18030_chinese_ci` 排序规则,以确保 TiDB 能够更好地处理中文相关的数据存储和查询需求。该字符集是一个广泛用于中文字符编码的标准,`gb18030_bin` 提供了基于二进制的精准排序,而 `gb18030_chinese_ci` 则支持大小写不敏感的通用排序规则,这两种排序规则使得对 `gb18030` 编码文本的排序和比较更加灵活高效。 通过支持 `gb18030` 字符集及其排序规则,TiDB v9.0.0 增强了与中文应用场景的兼容性,特别是在涉及多种语言和字符编码的场景下,可以更方便地进行字符集的选择和操作,提升了数据库的使用体验。 + 更多信息,请参考[用户文档](/character-set-gb18030.md)。 * 支持对分区表的非唯一列创建全局索引 [#58650](https://github.com/pingcap/tidb/issues/58650) @[Defined2014](https://github.com/Defined2014) @[mjonss](https://github.com/mjonss) **tw@qiancai** 从 v8.3.0 开始,TiDB 支持用户在分区表的唯一列上创建全局索引以提高查询性能,但不支持在非唯一列上创建全局索引。从 v9.0.0 起,TiDB 取消了这一限制,允许用户在分区表的非唯一列上创建全局索引,提升了全局索引的易用性。 From e4dd05c60c1da0415f98282371af023e15b5bc0b Mon Sep 17 00:00:00 2001 From: Roger Song Date: Mon, 16 Jun 2025 22:27:31 +0800 Subject: [PATCH 04/15] Allocating resources under RU_PER_SEC in priority --- releases/release-9.0.0.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 0c9bd9ffaf8f..ba43ec52df43 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -221,6 +221,16 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/system-variables.md#max_user_connections-从-v900-版本开始引入)。 +* 限制超额使用的资源组 [#issue号](链接) @[lhy1024](https://github.com/lhy1024) **tw@lilin90** + + 为资源组 (Resource Group) 设置 BURSTABLE 属性之后,TiDB 允许这个资源组的应用超额占用资源。但超额的申请有可能会挤占其他资源组的资源分配,影响其他资源组的 SLA。在 v9.0.0 中,我们为 BURSTABLE 增加了模式定义。默认情况下,BURSTABLE 采用相对 “温和 (`MODERATED`)” 的策略,TiDB 会动态调整超额资源申请的上限,尽量满足各个资源组限额内的资源。从前的“无限模式“仍旧保留,通过设置 `BURSTABLE=UNLIMITED` 来指定。 + + 需要注意的是,旧版本升级上来的资源组默认保留原行为 (`UNLIMITED`)。如果要调整到”温和“模式,需要通过 [`ALTER RESOURCE GROUP`](/sql-statements/sql-statement-alter-resource-group.md) 修改定义。 + + 为 BURSTABLE 增加”温和“分配模式,适用于系统中多个资源组优先级相当的场景。允许部分资源组安全地“溢出” ,在保证服务质量的前提下,更加高效利用资源。 + + 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-resource-group.md)。 + ### SQL 功能 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From cbbff91d072f1407f347872b79e56926f57cbd49 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Mon, 16 Jun 2025 22:49:30 +0800 Subject: [PATCH 05/15] Include storage engine in slow logs and statements summary --- releases/release-9.0.0.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index ba43ec52df43..0fe0a22281a2 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -356,6 +356,24 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/sql-statements/sql-statement-explain-analyze.md)。 +* 在慢日志和 Statement Summary Tables 中增加存储引擎标识 [#61736](https://github.com/pingcap/tidb/issues/61736) @[henrybw](https://github.com/henrybw) **tw@Oreoxmt** + + 在诊断优化过程中,经常需要按照存储引擎对 SQL 语句进行过滤。比如,当用户发现 TiFlash 上高负载时,希望只对运行在 TiFlash 的 SQL 语句进行过滤,找到可能引发 TiFlash 高负载的 SQL 语句。因此,在 v9.0.0 中,主要的 SQL 观测对象中增加了存储引擎标识。 + + 在 [Statement Summary Tables](/statement-summary-tables.md) 中: + + * `STORAGE_KV` = `1`: 该 SQL 读取了 TiKV。 + * `STORAGE_MPP` = `1`: 该 SQL 读取了 TiFlash。 + + 在[慢日志](/identify-slow-queries.md)中: + + * `Storage_from_kv` = `true`:该 SQL 读取了 TiKV。 + * `Storage_from_kv` = `true`:该 SQL 读取了 TiFlash。 + + 这个增强能够简化一部分诊断和优化场景的工作,加速诊断效率。 + + 更多信息,请参考 [Statement Summary Tables](/statement-summary-tables.md) 和 [慢日志](/identify-slow-queries.md)。 + ### 安全 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** From 0c64a9139963f95a578aaebeb2474ba401a28ed7 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 17 Jun 2025 10:59:31 +0800 Subject: [PATCH 06/15] new features: fix format --- releases/release-9.0.0.md | 99 +++------------------------------------ 1 file changed, 7 insertions(+), 92 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 0fe0a22281a2..a25207eb90e6 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -73,18 +73,6 @@ TiDB 版本:9.0.0 ### 可扩展性 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * PD 支持的微服务模式成为正式功能 (GA) [#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) tw@hfxsd 在 v8.0.0,PD 支持的微服务模式作为实验特性发布。从 v9.0.0 开始,该特性成为正式功能。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而实现 PD 的性能扩展,解决大规模集群下 PD 的性能瓶颈问题。 @@ -100,17 +88,6 @@ TiDB 版本:9.0.0 ### 性能 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 * 优化包含外键表场景下的建库建表和加列性能 [#61126](https://github.com/pingcap/tidb/issues/61126) @[GMHDBJD](https://github.com/GMHDBJD) @[River2000i](https://github.com/River2000i) **tw@hfxsd** 在早期版本中,在部分 SaaS 场景下,当集群中的表数量达到千万级别时,创建包含外键的表会出现明显的性能瓶颈。同时,大量外键关系还会进一步拖慢 CREATE TABLE 和 ADD COLUMN 等 DDL 操作的执行效率。从本版本起,TiDB 优化了相关元信息的处理逻辑,显著提升了在超大表规模场景下的 DDL 性能。 @@ -118,6 +95,7 @@ TiDB 版本:9.0.0 根据内部测试数据,在集群空负载、连接至 DDL owner 节点的情况下,建表速度最高可达 126 张表每秒,ADD COLUMN 操作的平均执行速度约为 45.5 张表每秒。 更多信息,请参考[用户文档](链接)。 + * 在几十万甚至上百万用户数的场景下,创建用户、修改用户信息的性能提升了 77 倍 [#55563](https://github.com/pingcap/tidb/issues/55563) @[tiancaiamao](https://github.com/tiancaiamao) **tw@hfxsd** 之前的版本,当集群的用户数超过 20 万时,创建和修改用户的性能 QPS 会降低到 1。在一些 SaaS 场景,如果需要创建百万个用户,以及定期批量修改用户的密码信息,需要 2 天甚至更久的时间,对于一些 SaaS 业务是不可接受的。 @@ -173,12 +151,6 @@ TiDB 版本:9.0.0 ### 高可用 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) @@ -193,17 +165,6 @@ TiDB 版本:9.0.0 ### 稳定性 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 * 客户端断连后,Server 端自动终止对应的 SQL [#60685](https://github.com/pingcap/tidb/pull/60685) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** 为提升资源利用率和系统稳定性,TiDB 从 v9.0.0 起引入连接中断检测机制。当客户端连接异常断开时,TiDB 会主动终止该连接上仍在执行的 SQL 语句,及时释放资源,避免无效语句长期运行,影响系统性能。 @@ -214,14 +175,15 @@ TiDB 版本:9.0.0 引入了 Table Mode,当用户执行快照恢复,或者 PITR 时,目标表的 table mode 会被置为 restore,处于 restore mode 的表会禁止用户执行任何读写操作。当数据恢复完成时,table mode 会被自动置回 normal,用户可以正常读写该表,从而提升数据恢复期间的任务稳定性和数据一致性。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](链接)。 + * 新增系统变量 `MAX_USER_CONNECTIONS`,用于限制不同用户可以建立的连接数 [#59203](https://github.com/pingcap/tidb/issues/59203) @[joccau](https://github.com/joccau) **tw@hfxsd** 从 v9.0.0 版本开始,你可通过设置系统变量 `MAX_USER_CONNECTIONS` ,来限制单个用户对单个 TiDB 节点可建立的连接数,避免由于单个用户消耗过多的 [token](/tidb-configuration-file.md#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 更多信息,请参考[用户文档](/system-variables.md#max_user_connections-从-v900-版本开始引入)。 -* 限制超额使用的资源组 [#issue号](链接) @[lhy1024](https://github.com/lhy1024) **tw@lilin90** +* 限制超额使用的资源组 [#issue号](链接) @[lhy1024](https://github.com/lhy1024) **tw@lilin90** 为资源组 (Resource Group) 设置 BURSTABLE 属性之后,TiDB 允许这个资源组的应用超额占用资源。但超额的申请有可能会挤占其他资源组的资源分配,影响其他资源组的 SLA。在 v9.0.0 中,我们为 BURSTABLE 增加了模式定义。默认情况下,BURSTABLE 采用相对 “温和 (`MODERATED`)” 的策略,TiDB 会动态调整超额资源申请的上限,尽量满足各个资源组限额内的资源。从前的“无限模式“仍旧保留,通过设置 `BURSTABLE=UNLIMITED` 来指定。 @@ -233,22 +195,12 @@ TiDB 版本:9.0.0 ### SQL 功能 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * 支持字符集 `gb18030` 和排序规则 `gb18030_bin` 和 `gb18030_chinese_ci` [#17470](https://github.com/tikv/tikv/issues/17470) [#55791](https://github.com/pingcap/tidb/issues/55791) @[cbcwestwolf](https://github.com/cbcwestwolf) *tw@hfxsd* +* 支持字符集 `gb18030` 和排序规则 `gb18030_bin` 和 `gb18030_chinese_ci` [#17470](https://github.com/tikv/tikv/issues/17470) [#55791](https://github.com/pingcap/tidb/issues/55791) @[cbcwestwolf](https://github.com/cbcwestwolf) *tw@hfxsd* 从 v9.0.0 开始,TiDB 支持 `gb18030` 字符集和 `gb18030_bin` 和 `gb18030_chinese_ci` 排序规则,以确保 TiDB 能够更好地处理中文相关的数据存储和查询需求。该字符集是一个广泛用于中文字符编码的标准,`gb18030_bin` 提供了基于二进制的精准排序,而 `gb18030_chinese_ci` 则支持大小写不敏感的通用排序规则,这两种排序规则使得对 `gb18030` 编码文本的排序和比较更加灵活高效。 通过支持 `gb18030` 字符集及其排序规则,TiDB v9.0.0 增强了与中文应用场景的兼容性,特别是在涉及多种语言和字符编码的场景下,可以更方便地进行字符集的选择和操作,提升了数据库的使用体验。 更多信息,请参考[用户文档](/character-set-gb18030.md)。 + * 支持对分区表的非唯一列创建全局索引 [#58650](https://github.com/pingcap/tidb/issues/58650) @[Defined2014](https://github.com/Defined2014) @[mjonss](https://github.com/mjonss) **tw@qiancai** 从 v8.3.0 开始,TiDB 支持用户在分区表的唯一列上创建全局索引以提高查询性能,但不支持在非唯一列上创建全局索引。从 v9.0.0 起,TiDB 取消了这一限制,允许用户在分区表的非唯一列上创建全局索引,提升了全局索引的易用性。 @@ -257,18 +209,6 @@ TiDB 版本:9.0.0 ### 数据库管理 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * TiDB 索引推荐 (Index Advisor) [#12303](https://github.com/pingcap/tidb/issues/12303) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** 索引设计在数据库性能优化中至关重要。从 v8.5.0 开始,TiDB 引入索引推荐 (Index Advisor) 功能,并持续进行改进和增强。该功能可以分析高频查询模式,推荐最优索引策略,帮助你更高效地进行性能调优,并降低索引设计的门槛。 @@ -283,7 +223,6 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/br/br-pitr-manual.md#进行中的日志备份与快照恢复的兼容性)。 - * 支持表级别数据打散功能(实验特性) [#8986](https://github.com/tikv/pd/issues/8986) @[bufferflies](https://github.com/bufferflies) **tw@qiancai** TiDB 会自动调度,将整个集群的数据均匀分布在所有 TiKV 节点。但是,数据的调度基于整个集群,在某些情况下,可能存在整个集群数据均匀分布,但是某张表的数据在整个集群中分布并不均匀的情况。从 v9.0.0 开始,TiDB 提供实验特性:表级数据分布信息查询和数据打散功能。该功能可以查看某张表在整个集群的所有 TiKV 节点的数据分布信息,以及将某张表的数据打散。 @@ -294,18 +233,6 @@ TiDB 版本:9.0.0 ### 可观测性 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * 新增 TiDB Workload Repository 功能,支持将历史工作负载数据持久化存储到 TiKV 中 [#58247](https://github.com/pingcap/tidb/issues/58247) @[xhebox](https://github.com/xhebox) @[henrybw](https://github.com/henrybw) @[wddevries](https://github.com/wddevries) **tw@lilin90** 很多高频更新的负载指标和状态信息被维护在实例的内存中,这些历史负载数据可以作为数据库的一部分持久化下来。主要用于以下目的: @@ -356,7 +283,7 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/sql-statements/sql-statement-explain-analyze.md)。 -* 在慢日志和 Statement Summary Tables 中增加存储引擎标识 [#61736](https://github.com/pingcap/tidb/issues/61736) @[henrybw](https://github.com/henrybw) **tw@Oreoxmt** +* 在慢日志和 Statement Summary Tables 中增加存储引擎标识 [#61736](https://github.com/pingcap/tidb/issues/61736) @[henrybw](https://github.com/henrybw) **tw@Oreoxmt** 在诊断优化过程中,经常需要按照存储引擎对 SQL 语句进行过滤。比如,当用户发现 TiFlash 上高负载时,希望只对运行在 TiFlash 的 SQL 语句进行过滤,找到可能引发 TiFlash 高负载的 SQL 语句。因此,在 v9.0.0 中,主要的 SQL 观测对象中增加了存储引擎标识。 @@ -376,12 +303,6 @@ TiDB 版本:9.0.0 ### 安全 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) @@ -390,12 +311,6 @@ TiDB 版本:9.0.0 ### 数据迁移 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx** 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) From b30d31aa8264297ea057d6b0c5fc09182bc16652 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 23 Jun 2025 14:17:17 +0800 Subject: [PATCH 07/15] Update releases/release-9.0.0.md Co-authored-by: Grace Cai --- releases/release-9.0.0.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index a25207eb90e6..2657c733b376 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -223,13 +223,15 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/br/br-pitr-manual.md#进行中的日志备份与快照恢复的兼容性)。 -* 支持表级别数据打散功能(实验特性) [#8986](https://github.com/tikv/pd/issues/8986) @[bufferflies](https://github.com/bufferflies) **tw@qiancai** +* 支持表级别数据打散功能(实验特性)[#8986](https://github.com/tikv/pd/issues/8986) @[bufferflies](https://github.com/bufferflies) **tw@qiancai** - TiDB 会自动调度,将整个集群的数据均匀分布在所有 TiKV 节点。但是,数据的调度基于整个集群,在某些情况下,可能存在整个集群数据均匀分布,但是某张表的数据在整个集群中分布并不均匀的情况。从 v9.0.0 开始,TiDB 提供实验特性:表级数据分布信息查询和数据打散功能。该功能可以查看某张表在整个集群的所有 TiKV 节点的数据分布信息,以及将某张表的数据打散。 - - 表级数据打散功能为单次执行任务,有超时时间限制。如果在超时时间内表的数据已经打散,则该任务提前结束。 + PD 会自动调度数据,将整个集群的数据尽可能均匀地分布到所有 TiKV 节点上。然而,这种自动调度是基于集群全局的。在某些场景下,尽管整个集群的数据分布是均衡的,但某张表在各个 TiKV 节点上的数据分布可能仍然不均匀。 + + 从 v9.0.0 开始,你可以通过 [`SHOW TABLE DISTRIBUTION`](/sql-statements/sql-statement-show-distribution-jobs.md) 语句查看某张表在集群中所有 TiKV 节点上的数据分布情况。如果存在数据分布不均衡,可以通过 [`DISTRIBUTE TABLE`](/sql-statements/sql-statement-distribute-table.md) 语句对该表进行数据打散(实验特性),以提升负载均衡性。 + + 表级数据打散功能属于一次性执行任务,并设有超时时间限制。如果到达超时时间后,打散任务未还未完成,则会自动退出。 - 更多信息,请参考[用户文档](/sql-statements/sql-statement-show-distribution-jobs.md)。 + 更多信息,请参考[用户文档](/sql-statements/sql-statement-distribute-table.md)。 ### 可观测性 From be7fbdc34cac2e46b908f98d2c1e881e0486e98d Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 25 Jun 2025 16:15:57 +0800 Subject: [PATCH 08/15] update Statement Summary Tables and slow queries --- releases/release-9.0.0.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 2657c733b376..544c55494685 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -285,23 +285,23 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/sql-statements/sql-statement-explain-analyze.md)。 -* 在慢日志和 Statement Summary Tables 中增加存储引擎标识 [#61736](https://github.com/pingcap/tidb/issues/61736) @[henrybw](https://github.com/henrybw) **tw@Oreoxmt** +* 在 Statement Summary Tables 和慢日志中增加存储引擎标识 [#61736](https://github.com/pingcap/tidb/issues/61736) @[henrybw](https://github.com/henrybw) **tw@Oreoxmt** - 在诊断优化过程中,经常需要按照存储引擎对 SQL 语句进行过滤。比如,当用户发现 TiFlash 上高负载时,希望只对运行在 TiFlash 的 SQL 语句进行过滤,找到可能引发 TiFlash 高负载的 SQL 语句。因此,在 v9.0.0 中,主要的 SQL 观测对象中增加了存储引擎标识。 + 在数据库诊断和性能优化过程中,用户经常需要根据存储引擎筛选 SQL 语句。例如,当用户发现 TiFlash 负载较高时,需要筛选出在 TiFlash 上运行的 SQL 语句,以便识别可能导致 TiFlash 负载过高的查询语句。为解决此需求,TiDB 从 v9.0.0 开始,在主要的 SQL 观测对象中新增了存储引擎标识字段。 - 在 [Statement Summary Tables](/statement-summary-tables.md) 中: + 在 [Statement Summary Tables](/statement-summary-tables.md) 中新增的字段: - * `STORAGE_KV` = `1`: 该 SQL 读取了 TiKV。 - * `STORAGE_MPP` = `1`: 该 SQL 读取了 TiFlash。 + * `STORAGE_KV`:值为 `1` 时表示该 SQL 语句访问了 TiKV。 + * `STORAGE_MPP`:值为 `1` 时表示该 SQL 语句访问了 TiFlash。 - 在[慢日志](/identify-slow-queries.md)中: + 在[慢日志](/identify-slow-queries.md)中新增的字段: - * `Storage_from_kv` = `true`:该 SQL 读取了 TiKV。 - * `Storage_from_kv` = `true`:该 SQL 读取了 TiFlash。 + * `Storage_from_kv`:值为 `true` 时表示该 SQL 语句访问了 TiKV。 + * `Storage_from_kv`:值为 `true` 时表示该 SQL 语句访问了 TiFlash。 - 这个增强能够简化一部分诊断和优化场景的工作,加速诊断效率。 + 该功能可以简化部分诊断和性能优化场景的工作流程,提升问题诊断效率。 - 更多信息,请参考 [Statement Summary Tables](/statement-summary-tables.md) 和 [慢日志](/identify-slow-queries.md)。 + 更多信息,请参考 [Statement Summary Tables](/statement-summary-tables.md) 和[慢日志](/identify-slow-queries.md)。 ### 安全 From 65d65c61c995caf742e7b97c9c68521d0a54affd Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 25 Jun 2025 23:23:30 +0800 Subject: [PATCH 09/15] Update releases/release-9.0.0.md Co-authored-by: Aolin --- releases/release-9.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 544c55494685..856ee1c2d15a 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -297,7 +297,7 @@ TiDB 版本:9.0.0 在[慢日志](/identify-slow-queries.md)中新增的字段: * `Storage_from_kv`:值为 `true` 时表示该 SQL 语句访问了 TiKV。 - * `Storage_from_kv`:值为 `true` 时表示该 SQL 语句访问了 TiFlash。 + * `Storage_from_mpp`:值为 `true` 时表示该 SQL 语句访问了 TiFlash。 该功能可以简化部分诊断和性能优化场景的工作流程,提升问题诊断效率。 From 1ce7c46912e29bdfcd275f583c516b4e7f809b98 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 26 Jun 2025 10:30:21 +0800 Subject: [PATCH 10/15] Apply suggestions from code review --- releases/release-9.0.0.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 856ee1c2d15a..e96157a738fb 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -90,9 +90,9 @@ TiDB 版本:9.0.0 * 优化包含外键表场景下的建库建表和加列性能 [#61126](https://github.com/pingcap/tidb/issues/61126) @[GMHDBJD](https://github.com/GMHDBJD) @[River2000i](https://github.com/River2000i) **tw@hfxsd** - 在早期版本中,在部分 SaaS 场景下,当集群中的表数量达到千万级别时,创建包含外键的表会出现明显的性能瓶颈。同时,大量外键关系还会进一步拖慢 CREATE TABLE 和 ADD COLUMN 等 DDL 操作的执行效率。从本版本起,TiDB 优化了相关元信息的处理逻辑,显著提升了在超大表规模场景下的 DDL 性能。 + 在早期版本中,在部分 SaaS 场景下,当集群中的表数量达到千万级别时,创建包含外键的表会出现明显的性能瓶颈。同时,大量外键关系还会进一步拖慢 `CREATE TABLE` 和 `ADD COLUMN` 等 DDL 操作的执行效率。 - 根据内部测试数据,在集群空负载、连接至 DDL owner 节点的情况下,建表速度最高可达 126 张表每秒,ADD COLUMN 操作的平均执行速度约为 45.5 张表每秒。 + 从 v9.0.0 起,TiDB 优化了相关元信息的处理逻辑,显著提升了在超大表规模场景下的 DDL 性能。根据内部测试数据,在集群空负载、连接至 DDL Owner 节点的情况下,建表速度最高可达每秒 126 张表,`ADD COLUMN` 操作的平均执行速度约为 45.5 张表每秒。 更多信息,请参考[用户文档](链接)。 @@ -165,15 +165,15 @@ TiDB 版本:9.0.0 ### 稳定性 -* 客户端断连后,Server 端自动终止对应的 SQL [#60685](https://github.com/pingcap/tidb/pull/60685) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** +* 引入了连接中断检测机制,在客户端断连后,Server 端会自动终止仍在执行的 SQL 语句 [#60685](https://github.com/pingcap/tidb/pull/60685) @[Defined2014](https://github.com/Defined2014) **tw@hfxsd** - 为提升资源利用率和系统稳定性,TiDB 从 v9.0.0 起引入连接中断检测机制。当客户端连接异常断开时,TiDB 会主动终止该连接上仍在执行的 SQL 语句,及时释放资源,避免无效语句长期运行,影响系统性能。 + 为提升资源利用率和系统稳定性,TiDB v9.0.0 引入了连接中断检测机制。当客户端连接异常断开时,TiDB 会主动终止该连接上仍在执行的 SQL 语句,及时释放资源,避免无效语句长期运行,影响系统性能。 更多信息,请参考[用户文档](链接)。 -* 引入 Table mode,在数据恢复阶段将限制用户对目标表进行读写操作,提升备份恢复任务的稳定性和数据一致性 [#59008](https://github.com/pingcap/tidb/issues/59008) @[fishiu](https://github.com/fishiu)@[River2000i](https://github.com/River2000i) @[Tristan1900](https://github.com/Tristan1900) @[Leavrth](https://github.com/Leavrth) **tw@hfxsd** +* 引入 Table Mode,在数据恢复阶段限制用户对目标表进行读写操作,提升备份恢复任务的稳定性和数据一致性 [#59008](https://github.com/pingcap/tidb/issues/59008) @[fishiu](https://github.com/fishiu) @[River2000i](https://github.com/River2000i) @[Tristan1900](https://github.com/Tristan1900) @[Leavrth](https://github.com/Leavrth) **tw@hfxsd** - 引入了 Table Mode,当用户执行快照恢复,或者 PITR 时,目标表的 table mode 会被置为 restore,处于 restore mode 的表会禁止用户执行任何读写操作。当数据恢复完成时,table mode 会被自动置回 normal,用户可以正常读写该表,从而提升数据恢复期间的任务稳定性和数据一致性。 + 引入了 Table Mode,当用户执行快照恢复,或者 PITR 时,目标表的 Table Mode 会被设置为 `restore`,处于 Restore Mode 的表会禁止用户执行任何读写操作。当数据恢复完成时,Table Mode 会被自动恢复到 `normal` 状态,用户可以正常读写该表,从而提升数据恢复期间的任务稳定性和数据一致性。 更多信息,请参考[用户文档](链接)。 @@ -195,9 +195,14 @@ TiDB 版本:9.0.0 ### SQL 功能 -* 支持字符集 `gb18030` 和排序规则 `gb18030_bin` 和 `gb18030_chinese_ci` [#17470](https://github.com/tikv/tikv/issues/17470) [#55791](https://github.com/pingcap/tidb/issues/55791) @[cbcwestwolf](https://github.com/cbcwestwolf) *tw@hfxsd* +* 支持 `gb18030` 字符集和 `gb18030_bin` 、`gb18030_chinese_ci` 排序规则 [#17470](https://github.com/tikv/tikv/issues/17470) [#55791](https://github.com/pingcap/tidb/issues/55791) @[cbcwestwolf](https://github.com/cbcwestwolf) *tw@hfxsd* - 从 v9.0.0 开始,TiDB 支持 `gb18030` 字符集和 `gb18030_bin` 和 `gb18030_chinese_ci` 排序规则,以确保 TiDB 能够更好地处理中文相关的数据存储和查询需求。该字符集是一个广泛用于中文字符编码的标准,`gb18030_bin` 提供了基于二进制的精准排序,而 `gb18030_chinese_ci` 则支持大小写不敏感的通用排序规则,这两种排序规则使得对 `gb18030` 编码文本的排序和比较更加灵活高效。 通过支持 `gb18030` 字符集及其排序规则,TiDB v9.0.0 增强了与中文应用场景的兼容性,特别是在涉及多种语言和字符编码的场景下,可以更方便地进行字符集的选择和操作,提升了数据库的使用体验。 + 从 v9.0.0 开始,TiDB 支持 `gb18030` 字符集和 `gb18030_bin` 、`gb18030_chinese_ci` 排序规则,以确保 TiDB 能够更好地处理中文相关的数据存储和查询需求。 + + - `gb18030` 字符集是一个广泛用于中文字符编码的标准。 + - `gb18030_bin` 提供了基于二进制的精准排序,而 `gb18030_chinese_ci` 则支持大小写不敏感的通用排序规则。这两种排序规则使得对 `gb18030` 编码文本的排序和比较更加灵活高效。 + + 通过支持 `gb18030` 字符集及其排序规则,TiDB v9.0.0 增强了与中文应用场景的兼容性,特别是在涉及多种语言和字符编码的场景下,可以更方便地进行字符集的选择和操作,提升了数据库的使用体验。 更多信息,请参考[用户文档](/character-set-gb18030.md)。 From 5160c655be4857cf45377df752f8253e60d4a0ef Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 26 Jun 2025 14:18:51 +0800 Subject: [PATCH 11/15] Apply suggestions from code review --- releases/release-9.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index e96157a738fb..f1faa5b522b7 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -175,7 +175,7 @@ TiDB 版本:9.0.0 引入了 Table Mode,当用户执行快照恢复,或者 PITR 时,目标表的 Table Mode 会被设置为 `restore`,处于 Restore Mode 的表会禁止用户执行任何读写操作。当数据恢复完成时,Table Mode 会被自动恢复到 `normal` 状态,用户可以正常读写该表,从而提升数据恢复期间的任务稳定性和数据一致性。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/br/br-pitr-guide.md)。 * 新增系统变量 `MAX_USER_CONNECTIONS`,用于限制不同用户可以建立的连接数 [#59203](https://github.com/pingcap/tidb/issues/59203) @[joccau](https://github.com/joccau) **tw@hfxsd** From fbd40fb65c184e0973e5e642a78c5736555a124d Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 27 Jun 2025 09:46:24 +0800 Subject: [PATCH 12/15] Update releases/release-9.0.0.md --- releases/release-9.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index f1faa5b522b7..21975be1ecba 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -173,7 +173,7 @@ TiDB 版本:9.0.0 * 引入 Table Mode,在数据恢复阶段限制用户对目标表进行读写操作,提升备份恢复任务的稳定性和数据一致性 [#59008](https://github.com/pingcap/tidb/issues/59008) @[fishiu](https://github.com/fishiu) @[River2000i](https://github.com/River2000i) @[Tristan1900](https://github.com/Tristan1900) @[Leavrth](https://github.com/Leavrth) **tw@hfxsd** - 引入了 Table Mode,当用户执行快照恢复,或者 PITR 时,目标表的 Table Mode 会被设置为 `restore`,处于 Restore Mode 的表会禁止用户执行任何读写操作。当数据恢复完成时,Table Mode 会被自动恢复到 `normal` 状态,用户可以正常读写该表,从而提升数据恢复期间的任务稳定性和数据一致性。 + 引入了 Table Mode,当用户执行快照恢复,或者 PITR 时,目标表的 Table Mode 会被自动设置为 `restore`,处于 Restore Mode 的表会禁止用户执行任何读写操作。当数据恢复完成时,Table Mode 会被自动恢复到 `normal` 状态,用户可以正常读写该表,从而提升数据恢复期间的任务稳定性和数据一致性。 更多信息,请参考[用户文档](/br/br-pitr-guide.md)。 From 843e5e683cab72a58e1b29b54f8910566b6e0e06 Mon Sep 17 00:00:00 2001 From: Aolin Date: Fri, 27 Jun 2025 10:42:40 +0800 Subject: [PATCH 13/15] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-9.0.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 21975be1ecba..623b0c0db351 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -292,7 +292,7 @@ TiDB 版本:9.0.0 * 在 Statement Summary Tables 和慢日志中增加存储引擎标识 [#61736](https://github.com/pingcap/tidb/issues/61736) @[henrybw](https://github.com/henrybw) **tw@Oreoxmt** - 在数据库诊断和性能优化过程中,用户经常需要根据存储引擎筛选 SQL 语句。例如,当用户发现 TiFlash 负载较高时,需要筛选出在 TiFlash 上运行的 SQL 语句,以便识别可能导致 TiFlash 负载过高的查询语句。为解决此需求,TiDB 从 v9.0.0 开始,在主要的 SQL 观测对象中新增了存储引擎标识字段。 + 当集群中同时部署了 TiKV 和 TiFlash 时,用户在数据库诊断和性能优化过程中经常需要根据存储引擎筛选 SQL 语句。例如,当用户发现 TiFlash 负载较高时,需要筛选出在 TiFlash 上运行的 SQL 语句,以便识别可能导致 TiFlash 负载过高的查询语句。为解决此需求,TiDB 从 v9.0.0 开始,在 Statement Summary Tables 和慢日志中新增了存储引擎标识字段。 在 [Statement Summary Tables](/statement-summary-tables.md) 中新增的字段: From 0b4ede5f31e97a1152501de780a46809e8d47457 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Fri, 27 Jun 2025 17:50:58 +0800 Subject: [PATCH 14/15] Add issue links and refine wording --- releases/release-9.0.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 623b0c0db351..18c9c38c54c8 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -183,13 +183,13 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/system-variables.md#max_user_connections-从-v900-版本开始引入)。 -* 限制超额使用的资源组 [#issue号](链接) @[lhy1024](https://github.com/lhy1024) **tw@lilin90** +* 限制资源组超额使用系统资源 [#9057](https://github.com/tikv/pd/issues/9057) [#59389](https://github.com/pingcap/tidb/issues/59389) @[lhy1024](https://github.com/lhy1024) **tw@lilin90** - 为资源组 (Resource Group) 设置 BURSTABLE 属性之后,TiDB 允许这个资源组的应用超额占用资源。但超额的申请有可能会挤占其他资源组的资源分配,影响其他资源组的 SLA。在 v9.0.0 中,我们为 BURSTABLE 增加了模式定义。默认情况下,BURSTABLE 采用相对 “温和 (`MODERATED`)” 的策略,TiDB 会动态调整超额资源申请的上限,尽量满足各个资源组限额内的资源。从前的“无限模式“仍旧保留,通过设置 `BURSTABLE=UNLIMITED` 来指定。 + 在 v9.0.0 之前,为资源组 (Resource Group) 设置 `BURSTABLE` 属性之后,TiDB 允许这个资源组的应用超额使用系统资源。但超额的申请可能会挤占其他资源组的资源分配,影响其他资源组的 SLA。从 v9.0.0 开始,为 `BURSTABLE` 增加了支持的模式。如果没有为 `BURSTABLE` 指定目标值,将默认启用相对温和的 `MODERATED` 模式,TiDB 会动态调整超额资源申请的上限,尽量满足各个资源组限额内的资源。从前的“无限模式“仍旧保留,通过设置 `BURSTABLE=UNLIMITED` 来指定。 - 需要注意的是,旧版本升级上来的资源组默认保留原行为 (`UNLIMITED`)。如果要调整到”温和“模式,需要通过 [`ALTER RESOURCE GROUP`](/sql-statements/sql-statement-alter-resource-group.md) 修改定义。 + 需要注意的是,旧版本升级上来的资源组默认保留原行为 (`UNLIMITED`)。如果要调整到 `MODERATED` 模式,需要通过 [`ALTER RESOURCE GROUP`](/sql-statements/sql-statement-alter-resource-group.md) 修改定义。 - 为 BURSTABLE 增加”温和“分配模式,适用于系统中多个资源组优先级相当的场景。允许部分资源组安全地“溢出” ,在保证服务质量的前提下,更加高效利用资源。 + `BURSTABLE` 的 `MODERATED` 资源分配模式适用于系统中多个资源组优先级相当的场景。允许部分资源组安全地“溢出” ,从而在保证服务质量的前提下,更高效地利用资源。 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-resource-group.md)。 From 4db5742683eaa156f82c2be9325bdbc3648dff80 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Fri, 27 Jun 2025 19:15:51 +0800 Subject: [PATCH 15/15] recommend SQL binding --- releases/release-9.0.0.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 18c9c38c54c8..5cffd90deeb9 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -149,6 +149,11 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/br/br-compact-log-backup.md)。 +* 推荐执行计划绑定(预览版) [#60148](https://github.com/pingcap/tidb/issues/60148) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** + + 通过“执行计划绑定 ([SQL Binding](/sql-plan-management.md#执行计划绑定-sql-binding))” 来稳定执行计划,是 SQL 调优过程中最重要的手段之一。当用户遇到 SQL 性能问题时,通常会在系统中寻找更优的执行计划,并将其绑定,以求快速修复问题。为简化这一流程,TiDB 引入了 `EXPLAIN EXPLORE` 命令,自动遍历并分析某条 SQL 语句的可能执行计划,并推荐可能更优的方案。这一能力可以加快 SQL 性能问题的定位与恢复,降低故障带来的影响。 + + ### 高可用 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) **tw@xxx**