From 339bb694df0bf7dd0146a0701f933dc50bd2aeec Mon Sep 17 00:00:00 2001 From: houfaxin Date: Wed, 12 Mar 2025 10:27:07 +0800 Subject: [PATCH 01/83] Create release-9.0.0.md --- releases/release-9.0.0.md | 177 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 releases/release-9.0.0.md diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md new file mode 100644 index 000000000000..ae0e10e999f3 --- /dev/null +++ b/releases/release-9.0.0.md @@ -0,0 +1,177 @@ +--- +title: TiDB 9.0.0 Release Notes +summary: 了解 TiDB 9.0.0 版本的新功能、兼容性变更、改进提升,以及错误修复。 +--- + +# TiDB 9.0.0 Release Notes + + + +发版日期:2025 年 xx 月 xx 日 + +TiDB 版本:9.0.0 + +试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/v8.5/quick-start-with-tidb) | [生产部署](https://docs.pingcap.com/zh/tidb/v9.0/production-deployment-using-tiup) | [下载离线包](https://cn.pingcap.com/product-community/?version=v9.0.0#version-list) + +在 9.0.0 版本中,你可以获得以下关键特性: + + + + + + + + + + + + + + +
分类功能描述
+ +## 功能详情 + +### 可扩展性 + + + +### 性能 + + + +### 稳定性 + + + +### SQL 功能 + + + +### 安全 + + + +## 兼容性变更 + +> **注意:** +> +> 以下为从 v8.5.0 升级至当前版本 (v9.0.0) 所需兼容性变更信息。如果从 v8.4.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 Release Notes 中提到的兼容性变更信息。 + +### 行为变更 + + + +### 系统变量 + +| 变量名 | 修改类型 | 描述 | +|--------|------------------------------|------| +| | | | +| | | | +| | | | +| | | | + + +### 配置参数 + +| 配置文件或组件 | 配置项 | 修改类型 | 描述 | +| -------- | -------- | -------- | -------- | +| | | | | +| | | | | + + +### 操作系统支持变更 + +升级 TiDB 前,请务必确保你的操作系统版本符合[操作系统及平台要求](/hardware-and-software-requirements.md#操作系统及平台要求)。 + + + +## 移除功能 + +* 以下为已移除的功能: + + + +* 以下为计划在未来版本中移除的功能: + + * 从 v8.0.0 开始,TiDB Lightning 废弃了物理导入模式下的[旧版冲突检测](/tidb-lightning/tidb-lightning-physical-import-mode-usage.md#旧版冲突检测从-v800-开始已被废弃)策略,支持通过 [`conflict.strategy`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 参数统一控制逻辑导入和物理导入模式的冲突检测策略。旧版冲突检测的参数 [`duplicate-resolution`](/tidb-lightning/tidb-lightning-configuration.md) 将在未来版本中被移除。 + +## 废弃功能 + +以下为计划将在未来版本中废弃的功能: + +* TiDB 在 v8.0.0 引入了系统变量 [`tidb_enable_auto_analyze_priority_queue`](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入),用于控制是否启用优先队列来优化自动收集统计信息任务的排序。在未来版本中,优先队列将成为自动收集统计信息任务的唯一排序方式,该系统变量将被废弃。 +* TiDB 在 v7.5.0 引入了系统变量 [`tidb_enable_async_merge_global_stats`](/system-variables.md#tidb_enable_async_merge_global_stats-从-v750-版本开始引入),用于设置 TiDB 使用异步方式合并分区统计信息,以避免 OOM 问题。在未来版本中,分区统计信息将统一使用异步方式进行合并,该系统变量将被废弃。 +* 计划在后续版本重新设计[执行计划绑定的自动演进](/sql-plan-management.md#自动演进绑定-baseline-evolution),相关的变量和行为会发生变化。 +* TiDB 在 v8.0.0 引入了系统变量 [`tidb_enable_parallel_hashagg_spill`](/system-variables.md#tidb_enable_parallel_hashagg_spill-从-v800-版本开始引入),用于控制 TiDB 是否支持并行 HashAgg 进行落盘。在未来版本中,该系统变量将被废弃。 +* TiDB 在 v5.1 引入了系统变量 [`tidb_partition_prune_mode`](/system-variables.md#tidb_partition_prune_mode-从-v51-版本开始引入),用于设置是否开启分区表动态裁剪模式。从 v8.5.0 开始,将该变量设置为 `static` 或 `static-only` 时会产生警告。在未来版本中,该系统变量将被废弃。 +* TiDB Lightning 参数 [`conflict.max-record-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 计划在未来版本中废弃,并在后续版本中删除。该参数将由 [`conflict.threshold`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代,即记录的冲突记录数和单个导入任务允许出现的冲突记录数的上限数保持一致。 +* 从 v6.3.0 开始,分区表默认使用[动态裁剪模式](/partitioned-table.md#动态裁剪模式),相比静态裁剪模式,动态裁剪模式支持 IndexJoin、Plan Cache 等特性,性能表现更好。在未来版本中,静态裁剪模式将被废弃。 + +## 改进提升 + ++ TiDB + + + ++ TiKV + + + ++ PD + + + ++ TiFlash + + + ++ Tools + + + Backup & Restore (BR) + + + + + TiDB Data Migration (DM) + + +## 错误修复 + ++ TiDB + + + ++ TiKV + + + ++ PD + + + ++ TiFlash + + + ++ Tools + + + Backup & Restore (BR) + + + + + TiCDC + + + + + TiDB Lightning + + + +## 性能测试 + +如需了解 TiDB v9.0.0 的性能表现,你可以参考 TiDB Cloud Dedicated 集群的[性能测试报告](https://docs.pingcap.com/tidbcloud/v9.0-performance-highlights)(英文版)。 + +## 贡献者 + +感谢来自 TiDB 社区的贡献者们: + From 58256e5c0364e435b46cbc07a7ac6a5ba65dd881 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Tue, 18 Mar 2025 17:53:36 +0800 Subject: [PATCH 02/83] cross-zone network traffic by SQL --- releases/release-9.0.0.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index ae0e10e999f3..7f36c38cfd9a 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -47,6 +47,20 @@ TiDB 版本:9.0.0 ### SQL 功能 +### 数据库管理 + + +### 可观测性 + +* SQL 跨可用区流量观测 [#57543](https://github.com/pingcap/tidb/issues/57543) @[nolouch](https://github.com/nolouch) @[yibin87](https://github.com/yibin87) + + 跨可用区 (Avaiable Zone) 部署能够提升集群的容灾能力。在云服务环境中,这种部署方式会产生额外的网络流量费用,例如亚马逊 AWS 会对跨区域和跨可用区的流量计费。对于运行在云服务上的 TiDB 集群来说,更精确监控和分析网络流量变得尤为重要。 + + 自 v9.0.0 开始,TiDB 会记录 SQL 处理的网络流量,并区分跨可用区的流量。相关记录写入 [Statements 日志](/statement-summary-tables.md) 和 [慢日志](/identify-slow-queries.md)。这个特性主要用于协助用户跟踪 TiDB 集群内部的主要数据传输,分析跨区域的流量产生的原因,从而更好地理解和控制相关成本。 + + 需要注意的是,当前版本只观测 **查询在集群内** (TiDB, TiKV, TiFlash) 之间产生的网络传输,不包括 DML 和 DDL;另外,所记录的流量数据为解包后的流量,和实际物理流量会有差异。并不能作为网络计费的依据。 + + 更多信息,请参考[用户文档]()。 ### 安全 From dd0cdc5894d6d30e79cfde4ef08f7e70ba56291b Mon Sep 17 00:00:00 2001 From: Roger Song Date: Tue, 18 Mar 2025 19:14:08 +0800 Subject: [PATCH 03/83] Index advisor in SQL --- releases/release-9.0.0.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 7f36c38cfd9a..f7c905ae00e7 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -49,6 +49,13 @@ TiDB 版本:9.0.0 ### 数据库管理 +* TiDB 索引推荐 [#12303](https://github.com/pingcap/tidb/issues/12303) @[qw4990](https://github.com/qw4990) + + 索引设计在数据库性能优化中扮演非常重要的作用。自 v9.0.0 起,TiDB 在内核中加入了索引推荐。索引推荐能够分析高频查询的模式并推荐最佳索引策略,协助用户快速实现数据库性能调优,同时降低技术团队的学习门槛。 + + 通过 [`RECOMMEND INDEX`](/index-advisor.md) 语法,用户可以选择为某条 SQL 语句生成索引推荐,也可以自动读取历史负载中的高频 SQL 语句,做批量索引推荐。推荐结果保存在 `mysql.index_advisor_results` 中,可在后续随时查看。 + + 更多信息,请参考[用户文档](/index-advisor.md)。 ### 可观测性 From e114221a67458b2c1e8d836776d7a9d7220170b4 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 18 Mar 2025 22:27:33 +0800 Subject: [PATCH 04/83] Apply suggestions from code review Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- releases/release-9.0.0.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index f7c905ae00e7..3610ba3ac22b 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -37,15 +37,27 @@ TiDB 版本:9.0.0 ### 性能 +在几十万甚至上百万用户数的场景下,创建用户,修改用户信息的性能提升了 77 倍 [#55563](https://github.com/pingcap/tidb/issues/55563) @[tiancaiamao](https://github.com/tiancaiamao) **tw@hfxsd** +之前的版本,当集群的用户数超过 20 万时,创建修改用户的性能 QPS 会降低到 1。在一些 SaaS 场景,如果需要创建百万个用户,以及定期批量修改用户的密码信息,需要 2 天甚至更久的时间,对于一些 SaaS 业务是不可接受的。v9.0 对这部分 DCL 的性能进行了优化,创建 200万用户仅需 37 分钟,大大提升了 DCL 语句的执行性能,提升了 TiDB 在此类 SaaS 场景的用户体验。 + +更多信息,请参考[用户文档]( )。 ### 稳定性 +引入了系统变量 MAX_USER_CONNECTIONS,用于限制不同用户可以建立的连接数 [#59203](https://github.com/pingcap/tidb/issues/59203) @[joccau](https://github.com/joccau) **tw@hfxsd** + +从 v9.0 版本开始,用户可通过设置系统变量 MAX_USER_CONNECTIONS ,来限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file/#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 +更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb/dev/partitioned-table/#全局索引/)。 ### SQL 功能 +支持对分区表的非唯一列创建全局索引 [#58650](https://github.com/pingcap/tidb/issues/58650) @[Defined2014](https://github.com/Defined2014) @[mjonss](https://github.com/mjonss) **tw@qiancai** + +从 v8.3 版本开始,用户可以在分区表创建全局索引来提升查询性能,但是全局索引仅支持对唯一的列创建。从 v9.0 开始,解除了该限制,用户可以对分区表非唯一的列创建全局索引,提升了全局索引的易用性。 +更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb/dev/partitioned-table/#全局索引/)。 ### 数据库管理 @@ -87,7 +99,7 @@ TiDB 版本:9.0.0 | 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| -| | | | +| MAX_USER_CONNECTIONS | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file/#token-limit) 导致其他用户提交的请求得不到及时响应的问题 | | | | | | | | | | | | | @@ -132,7 +144,7 @@ TiDB 版本:9.0.0 ## 改进提升 + TiDB - +* 优化了全局排序功能对 CPU 的资源开销,对 CPU 的最低配置要求从 8c 降低到了 1c,提升了全局排序在小规格机型上的易用性。 [#58680](https://github.com/pingcap/tidb/issues/58680) @[joccau](https://github.com/joccau) + TiKV From d5f5caaa6fca7e35396297c67055253f43597dfb Mon Sep 17 00:00:00 2001 From: Roger Song Date: Tue, 18 Mar 2025 23:27:24 +0800 Subject: [PATCH 05/83] workload repository --- releases/release-9.0.0.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index f7c905ae00e7..94fbd01ae3e1 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -59,6 +59,38 @@ TiDB 版本:9.0.0 ### 可观测性 +* TiDB Workload Repository [#58247](https://github.com/pingcap/tidb/issues/58247) @[xhebox](https://github.com/xhebox) @[henrybw](https://github.com/henrybw) @[wddevries](https://github.com/wddevries) + + 很多高频更新的负载指标和状态信息被维护在实例的内存中,这些历史负载数据可以作为数据库的一部分持久化下来。主要用于以下目的: + + * **故障诊断:** 在对过往问题的诊断过程中,需要回顾历史活动和事件。持久化的负载数据可以帮助用户复盘过去某个时间段内的状态信息变化,找出异常点;或者精确定位某个数据库会话或 SQL 语句在特定时刻的具体行为。 + + * **自动化运维:** 数据库自治是提升用户体验并降低使用门槛的必然趋势,而实现数据库自动调优需要历史数据作为支撑。基于持久化的历史工作负载数据,TiDB 可以逐步向自动化运维迈进,例如:索引推荐(Index Advisor)、统计信息推荐(Statistics Advisor)、SQL 绑定推荐(SQL Binding Advisor)等。 + + 在 v9.0.0 中,通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest) 启用 `Workload Repository`,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。被持久化的内存表分为两类: + + * **存储累计指标的内存表**体积较大,快照和存储成本比较高,这些表会依据 [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) 的设置做批量快照,最小间隔 15 分钟。通过比较任意两个快照间指标的变化,得出这一段时间各个指标的增量。包括以下内存表: + + * [`INFORMATION_SCHEMA.TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md) + * [`INFORMATION_SCHEMA.TIDB_STATEMENTS_STATS`](/statement-summary-tables.md) (由 `STATEMENTS_SUMMARY` 派生的内存表,计划在未来取代 `STATEMENTS_SUMMARY`。) + * [`INFORMATION_SCHEMA.CLIENT_ERRORS_SUMMARY_BY_HOST`](/information-schema/client-errors-summary-by-host.md) + * [`INFORMATION_SCHEMA.CLIENT_ERRORS_SUMMARY_BY_USER`](/information-schema/client-errors-summary-by-user.md) + * [`INFORMATION_SCHEMA.CLIENT_ERRORS_SUMMARY_GLOBAL`](/information-schema/client-errors-summary-global.md) + + * **保存即时状态的内存表**刷新很快,通常体积不大,需要做很小间隔的快照才有作用。通过设置 [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval) 的值指定时间间隔,默认为 5 秒。设置为 0 则关闭这个类型的快照。被持久化的这类内存表包括: + + * [`INFORMATION_SCHEMA.PROCESSLIST`](/information-schema/information-schema-processlist.md) + * [`INFORMATION_SCHEMA.DATA_LOCK_WAITS`](/information-schema/information-schema-data-lock-waits.md) + * [`INFORMATION_SCHEMA.TIDB_TRX`](/information-schema/information-schema-tidb-trx.md) + * [`INFORMATION_SCHEMA.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) + * [`INFORMATION_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) + + `Workload Repository` 中的数据会被自动清理,默认保存 7 天。通过设置 [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days) 修改保存时间。 + + 通过持久化数据库的历史工作负载,TiDB 可以更好地进行故障排查和优化推荐,并在未来推出一系列围绕历史负载的自动化工具,提升数据库运维和诊断的用户体验。 + + 更多信息,请参考[用户文档](/workloadrepo.md)。 + * SQL 跨可用区流量观测 [#57543](https://github.com/pingcap/tidb/issues/57543) @[nolouch](https://github.com/nolouch) @[yibin87](https://github.com/yibin87) 跨可用区 (Avaiable Zone) 部署能够提升集群的容灾能力。在云服务环境中,这种部署方式会产生额外的网络流量费用,例如亚马逊 AWS 会对跨区域和跨可用区的流量计费。对于运行在云服务上的 TiDB 集群来说,更精确监控和分析网络流量变得尤为重要。 From 9dd88810e283191cb9d559a273ba2cc10f4180ce Mon Sep 17 00:00:00 2001 From: Roger Song Date: Tue, 18 Mar 2025 23:44:49 +0800 Subject: [PATCH 06/83] variables included for workload repository --- releases/release-9.0.0.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index ee4722460a85..de27f7f22c6a 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -132,8 +132,10 @@ TiDB 版本:9.0.0 | 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| | MAX_USER_CONNECTIONS | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file/#token-limit) 导致其他用户提交的请求得不到及时响应的问题 | -| | | | -| | | | +| [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest)| 新增 | 这变量用户设置 [Workload Repository](/workloadrepo.md) 的写入目标。 默认为空,不启用。 设置为 `table` 写入 TiKV 。| +| [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 统一快照的时间间隔。 | +| [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 快速时间快照的间隔。 | +| [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 中数据保存的天数。 | | | | | From be30eb67526e906dae3e85e07e09f64149c1dda0 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 19 Mar 2025 00:12:24 +0800 Subject: [PATCH 07/83] refine execution info --- releases/release-9.0.0.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index de27f7f22c6a..3683530f46bd 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -113,6 +113,14 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档]()。 +* 优化 `execution info` 中指标显示 [#56232](https://github.com/pingcap/tidb/issues/56232) @[yibin87](https://github.com/yibin87) + + [EXPLAIN ANALYZE](/sql-statements/sql-statement-explain-analyze.md) 会执行的 SQL 语句,并在 `execution info` 中记录执行过程的细节,同样的信息在[慢日志](/identify-slow-queries.md)中也会被捕捉。这些信息对分析和理解 SQL 的时间花费有至关重要的作用。 + + TiDB 在 v9.0.0 中对 `execution info` 的输出重新做了梳理和优化,使每个指标的表达更加准确。比如,`time` 表示算子执行的时钟时间,`loops` 是当前算子被父算子调用的次数,`total_time` 代表所有并发的累加时间。帮助使用者更加准确地理解 SQL 语句的执行过程,做出有针对性的优化策略。 + + 更多信息,请参考[用户文档](/sql-statements/sql-statement-explain-analyze.md)。 + ### 安全 From b09cf4f15f21d21d37bfdbc5c75bcc0d2ee5c4d1 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 19 Mar 2025 00:27:25 +0800 Subject: [PATCH 08/83] deprecation announcement concurrently-init-stats tidb_enable_index_merge_join --- releases/release-9.0.0.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 3683530f46bd..ab0196cedea6 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -182,6 +182,8 @@ TiDB 版本:9.0.0 * TiDB 在 v5.1 引入了系统变量 [`tidb_partition_prune_mode`](/system-variables.md#tidb_partition_prune_mode-从-v51-版本开始引入),用于设置是否开启分区表动态裁剪模式。从 v8.5.0 开始,将该变量设置为 `static` 或 `static-only` 时会产生警告。在未来版本中,该系统变量将被废弃。 * TiDB Lightning 参数 [`conflict.max-record-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 计划在未来版本中废弃,并在后续版本中删除。该参数将由 [`conflict.threshold`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代,即记录的冲突记录数和单个导入任务允许出现的冲突记录数的上限数保持一致。 * 从 v6.3.0 开始,分区表默认使用[动态裁剪模式](/partitioned-table.md#动态裁剪模式),相比静态裁剪模式,动态裁剪模式支持 IndexJoin、Plan Cache 等特性,性能表现更好。在未来版本中,静态裁剪模式将被废弃。 +* 配置项 [`concurrently-init-stats`](/tidb-configuration-file.md#concurrently-init-stats-从-v810-和-v752-版本开始引入) 用于控制初始化统计信息缓存的并发模式,并从 v8.2 开始默认启用。计划在后续版本中仅支持并发模式,因此该配置项将被移除。 +* 算子 `indexMergeJoin` 是表连接的一种方式,目前已经被其他连接方式取代,`indexMergeJoin` 计划在未来版本废弃。对应的系统变量[`tidb_enable_index_merge_join`](/system-variables.md#tidb_enable_index_merge_join) 也将被一同废弃。 ## 改进提升 From d00ce6249e108df2903aa8db3d0c45a926e8d370 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Wed, 19 Mar 2025 17:29:10 +0800 Subject: [PATCH 09/83] Update release-9.0.0.md add note by joey --- releases/release-9.0.0.md | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index ab0196cedea6..0036b4aaf1c1 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -43,6 +43,46 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档]( )。 +* 新增支持下推以下函数到 TiFlash [#59317](https://github.com/pingcap/tidb/issues/59317) @[guo-shaoge](https://github.com/guo-shaoge) **tw@Oreoxmt** + + * `TRUNCATE` + + 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 + +* 新增支持下推包含以下聚集函数的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** + + * `MAX` + * `MIN` + * `COUNT` + * `SUM` + * `AVG` + + 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 + +* 支持下推以下日期函数到 TiKV [#59365](https://github.com/pingcap/tidb/issues/59365) @[gengliqi](https://github.com/gengliqi) **tw@Oreoxmt** + + * `FROM_UNIXTIME()` + * `TIMESTAMPDIFF()` + * `UNIX_TIMESTAMP()` + + 更多信息,请参考[用户文档](/functions-and-operators/expressions-pushed-down.md)。 + + +* TiFlash 支持新的存储格式以提升字符串类型扫描效率 [#9673](https://github.com/pingcap/tiflash/issues/9673) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** + + v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,对于长度较小的字符串数值扫描效率不高。在 v9.0.0 版本,TiFlash 支持新的存储格式,对长度小于64字节的字符串数据改进了存储格式,提升了扫描效率,同时不会影响其他的数据存储和扫描效率。将 TiFlash 配置文件中的 `format_version` 设置为 8,可以在新的数据写入时,使用新的存储格式,同时不影响已有数据。 + + 建议用户在升级前阅读 [TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 + + 更多信息,请参考[用户文档](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml)。 + +### 高可用 + +* TiProxy 支持流量回放功能正式发布 [#642](https://github.com/pingcap/tiproxy/issues/642) @[djshow832](https://github.com/djshow832) **tw@hfxsd** + + v1.3.0 开始,TiProxy 以实验特性发布流量回放功能。在 v1.4.0 版本,TiProxy 正式发布流量回放功能。TiProxy 提供专有的 SQL 命令进行流量捕获和流量回放功能。用户可以更加方便的捕获 TiDB 生产集群中的访问流量,并在测试集群中按照指定的速率回放这些流量,完成业务验证。 + + 更多信息,请参考[用户文档](/tiproxy/tiproxy-traffic-replay.md)。 ### 稳定性 引入了系统变量 MAX_USER_CONNECTIONS,用于限制不同用户可以建立的连接数 [#59203](https://github.com/pingcap/tidb/issues/59203) @[joccau](https://github.com/joccau) **tw@hfxsd** From c4e733bfa63b0bd4eff60f26372e12f78ab9648c Mon Sep 17 00:00:00 2001 From: houfaxin Date: Fri, 21 Mar 2025 09:07:13 +0800 Subject: [PATCH 10/83] Update release-9.0.0.md --- releases/release-9.0.0.md | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 0036b4aaf1c1..73d9ae4f3ce5 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -35,21 +35,21 @@ TiDB 版本:9.0.0 ### 可扩展性 - ### 性能 -在几十万甚至上百万用户数的场景下,创建用户,修改用户信息的性能提升了 77 倍 [#55563](https://github.com/pingcap/tidb/issues/55563) @[tiancaiamao](https://github.com/tiancaiamao) **tw@hfxsd** -之前的版本,当集群的用户数超过 20 万时,创建修改用户的性能 QPS 会降低到 1。在一些 SaaS 场景,如果需要创建百万个用户,以及定期批量修改用户的密码信息,需要 2 天甚至更久的时间,对于一些 SaaS 业务是不可接受的。v9.0 对这部分 DCL 的性能进行了优化,创建 200万用户仅需 37 分钟,大大提升了 DCL 语句的执行性能,提升了 TiDB 在此类 SaaS 场景的用户体验。 +* 在几十万甚至上百万用户数的场景下,创建用户,修改用户信息的性能提升了 77 倍 [#55563](https://github.com/pingcap/tidb/issues/55563) @[tiancaiamao](https://github.com/tiancaiamao) **tw@hfxsd** + + 之前的版本,当集群的用户数超过 20 万时,创建修改用户的性能 QPS 会降低到 1。在一些 SaaS 场景,如果需要创建百万个用户,以及定期批量修改用户的密码信息,需要 2 天甚至更久的时间,对于一些 SaaS 业务是不可接受的。v9.0 对这部分 DCL 的性能进行了优化,创建 200万用户仅需 37 分钟,大大提升了 DCL 语句的执行性能,提升了 TiDB 在此类 SaaS 场景的用户体验。 -更多信息,请参考[用户文档]( )。 + 更多信息,请参考[用户文档]( )。 -* 新增支持下推以下函数到 TiFlash [#59317](https://github.com/pingcap/tidb/issues/59317) @[guo-shaoge](https://github.com/guo-shaoge) **tw@Oreoxmt** +* 新增支持下推以下函数到 TiFlash [#59317](https://github.com/pingcap/tidb/issues/59317) @[guo-shaoge](https://github.com/guo-shaoge) **tw@Oreoxmt** * `TRUNCATE` - 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 + 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 -* 新增支持下推包含以下聚集函数的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** +* 新增支持下推包含以下聚集函数的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** * `MAX` * `MIN` @@ -59,7 +59,7 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 -* 支持下推以下日期函数到 TiKV [#59365](https://github.com/pingcap/tidb/issues/59365) @[gengliqi](https://github.com/gengliqi) **tw@Oreoxmt** +* 支持下推以下日期函数到 TiKV [#59365](https://github.com/pingcap/tidb/issues/59365) @[gengliqi](https://github.com/gengliqi) **tw@Oreoxmt** * `FROM_UNIXTIME()` * `TIMESTAMPDIFF()` @@ -67,8 +67,7 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/functions-and-operators/expressions-pushed-down.md)。 - -* TiFlash 支持新的存储格式以提升字符串类型扫描效率 [#9673](https://github.com/pingcap/tiflash/issues/9673) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** +* TiFlash 支持新的存储格式以提升字符串类型扫描效率 [#9673](https://github.com/pingcap/tiflash/issues/9673) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,对于长度较小的字符串数值扫描效率不高。在 v9.0.0 版本,TiFlash 支持新的存储格式,对长度小于64字节的字符串数据改进了存储格式,提升了扫描效率,同时不会影响其他的数据存储和扫描效率。将 TiFlash 配置文件中的 `format_version` 设置为 8,可以在新的数据写入时,使用新的存储格式,同时不影响已有数据。 @@ -78,26 +77,28 @@ TiDB 版本:9.0.0 ### 高可用 -* TiProxy 支持流量回放功能正式发布 [#642](https://github.com/pingcap/tiproxy/issues/642) @[djshow832](https://github.com/djshow832) **tw@hfxsd** +* TiProxy 支持流量回放功能正式发布 [#642](https://github.com/pingcap/tiproxy/issues/642) @[djshow832](https://github.com/djshow832) **tw@hfxsd** v1.3.0 开始,TiProxy 以实验特性发布流量回放功能。在 v1.4.0 版本,TiProxy 正式发布流量回放功能。TiProxy 提供专有的 SQL 命令进行流量捕获和流量回放功能。用户可以更加方便的捕获 TiDB 生产集群中的访问流量,并在测试集群中按照指定的速率回放这些流量,完成业务验证。 - 更多信息,请参考[用户文档](/tiproxy/tiproxy-traffic-replay.md)。 + 更多信息,请参考[用户文档](/tiproxy/tiproxy-traffic-replay.md)。 ### 稳定性 -引入了系统变量 MAX_USER_CONNECTIONS,用于限制不同用户可以建立的连接数 [#59203](https://github.com/pingcap/tidb/issues/59203) @[joccau](https://github.com/joccau) **tw@hfxsd** -从 v9.0 版本开始,用户可通过设置系统变量 MAX_USER_CONNECTIONS ,来限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file/#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 +* 引入了系统变量 `MAX_USER_CONNECTIONS`,用于限制不同用户可以建立的连接数 [#59203](https://github.com/pingcap/tidb/issues/59203) @[joccau](https://github.com/joccau) **tw@hfxsd** + + 从 v9.0 版本开始,用户可通过设置系统变量 `MAX_USER_CONNECTIONS` ,来限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file/#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 -更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb/dev/partitioned-table/#全局索引/)。 + 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb/dev/partitioned-table/#全局索引/)。 ### SQL 功能 -支持对分区表的非唯一列创建全局索引 [#58650](https://github.com/pingcap/tidb/issues/58650) @[Defined2014](https://github.com/Defined2014) @[mjonss](https://github.com/mjonss) **tw@qiancai** -从 v8.3 版本开始,用户可以在分区表创建全局索引来提升查询性能,但是全局索引仅支持对唯一的列创建。从 v9.0 开始,解除了该限制,用户可以对分区表非唯一的列创建全局索引,提升了全局索引的易用性。 +* 支持对分区表的非唯一列创建全局索引 [#58650](https://github.com/pingcap/tidb/issues/58650) @[Defined2014](https://github.com/Defined2014) @[mjonss](https://github.com/mjonss) **tw@qiancai** + + 从 v8.3 版本开始,用户可以在分区表创建全局索引来提升查询性能,但是全局索引仅支持对唯一的列创建。从 v9.0 开始,解除了该限制,用户可以对分区表非唯一的列创建全局索引,提升了全局索引的易用性。 -更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb/dev/partitioned-table/#全局索引/)。 + 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb/dev/partitioned-table/#全局索引/)。 ### 数据库管理 From 03aa1ad6962a5bc6aff99820d6ebd62bcd8360c5 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Fri, 21 Mar 2025 17:40:27 +0800 Subject: [PATCH 11/83] include tw --- 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 73d9ae4f3ce5..7c7b0468fbe7 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -102,7 +102,7 @@ TiDB 版本:9.0.0 ### 数据库管理 -* TiDB 索引推荐 [#12303](https://github.com/pingcap/tidb/issues/12303) @[qw4990](https://github.com/qw4990) +* TiDB 索引推荐 [#12303](https://github.com/pingcap/tidb/issues/12303) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** 索引设计在数据库性能优化中扮演非常重要的作用。自 v9.0.0 起,TiDB 在内核中加入了索引推荐。索引推荐能够分析高频查询的模式并推荐最佳索引策略,协助用户快速实现数据库性能调优,同时降低技术团队的学习门槛。 @@ -112,7 +112,7 @@ TiDB 版本:9.0.0 ### 可观测性 -* TiDB Workload Repository [#58247](https://github.com/pingcap/tidb/issues/58247) @[xhebox](https://github.com/xhebox) @[henrybw](https://github.com/henrybw) @[wddevries](https://github.com/wddevries) +* TiDB Workload Repository [#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** 很多高频更新的负载指标和状态信息被维护在实例的内存中,这些历史负载数据可以作为数据库的一部分持久化下来。主要用于以下目的: @@ -144,7 +144,7 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/workloadrepo.md)。 -* SQL 跨可用区流量观测 [#57543](https://github.com/pingcap/tidb/issues/57543) @[nolouch](https://github.com/nolouch) @[yibin87](https://github.com/yibin87) +* SQL 跨可用区流量观测 [#57543](https://github.com/pingcap/tidb/issues/57543) @[nolouch](https://github.com/nolouch) @[yibin87](https://github.com/yibin87) **tw@Oreoxmt** 跨可用区 (Avaiable Zone) 部署能够提升集群的容灾能力。在云服务环境中,这种部署方式会产生额外的网络流量费用,例如亚马逊 AWS 会对跨区域和跨可用区的流量计费。对于运行在云服务上的 TiDB 集群来说,更精确监控和分析网络流量变得尤为重要。 @@ -154,7 +154,7 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档]()。 -* 优化 `execution info` 中指标显示 [#56232](https://github.com/pingcap/tidb/issues/56232) @[yibin87](https://github.com/yibin87) +* 优化 `execution info` 中指标显示 [#56232](https://github.com/pingcap/tidb/issues/56232) @[yibin87](https://github.com/yibin87) **tw@hfxsd** [EXPLAIN ANALYZE](/sql-statements/sql-statement-explain-analyze.md) 会执行的 SQL 语句,并在 `execution info` 中记录执行过程的细节,同样的信息在[慢日志](/identify-slow-queries.md)中也会被捕捉。这些信息对分析和理解 SQL 的时间花费有至关重要的作用。 From 3ca628f84c66c6a00c9f37326746b04c1751db0d Mon Sep 17 00:00:00 2001 From: Roger Song Date: Fri, 21 Mar 2025 18:08:08 +0800 Subject: [PATCH 12/83] original baseline evolution was removed --- releases/release-9.0.0.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 7c7b0468fbe7..690bd78d8564 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -206,7 +206,7 @@ TiDB 版本:9.0.0 * 以下为已移除的功能: - + * 原有的[执行计划绑定的自动演进](/sql-plan-management.md#自动演进绑定-baseline-evolution)已经被移除,后续推出增强的功能替代。 * 以下为计划在未来版本中移除的功能: @@ -218,7 +218,6 @@ TiDB 版本:9.0.0 * TiDB 在 v8.0.0 引入了系统变量 [`tidb_enable_auto_analyze_priority_queue`](/system-variables.md#tidb_enable_auto_analyze_priority_queue-从-v800-版本开始引入),用于控制是否启用优先队列来优化自动收集统计信息任务的排序。在未来版本中,优先队列将成为自动收集统计信息任务的唯一排序方式,该系统变量将被废弃。 * TiDB 在 v7.5.0 引入了系统变量 [`tidb_enable_async_merge_global_stats`](/system-variables.md#tidb_enable_async_merge_global_stats-从-v750-版本开始引入),用于设置 TiDB 使用异步方式合并分区统计信息,以避免 OOM 问题。在未来版本中,分区统计信息将统一使用异步方式进行合并,该系统变量将被废弃。 -* 计划在后续版本重新设计[执行计划绑定的自动演进](/sql-plan-management.md#自动演进绑定-baseline-evolution),相关的变量和行为会发生变化。 * TiDB 在 v8.0.0 引入了系统变量 [`tidb_enable_parallel_hashagg_spill`](/system-variables.md#tidb_enable_parallel_hashagg_spill-从-v800-版本开始引入),用于控制 TiDB 是否支持并行 HashAgg 进行落盘。在未来版本中,该系统变量将被废弃。 * TiDB 在 v5.1 引入了系统变量 [`tidb_partition_prune_mode`](/system-variables.md#tidb_partition_prune_mode-从-v51-版本开始引入),用于设置是否开启分区表动态裁剪模式。从 v8.5.0 开始,将该变量设置为 `static` 或 `static-only` 时会产生警告。在未来版本中,该系统变量将被废弃。 * TiDB Lightning 参数 [`conflict.max-record-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 计划在未来版本中废弃,并在后续版本中删除。该参数将由 [`conflict.threshold`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代,即记录的冲突记录数和单个导入任务允许出现的冲突记录数的上限数保持一致。 From 2840f8536f06832a3c43cb010fdc9c0eb611bad3 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 24 Mar 2025 17:28:29 +0800 Subject: [PATCH 13/83] update --- 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 690bd78d8564..ae942a36432a 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -49,7 +49,7 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 -* 新增支持下推包含以下聚集函数的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@Oreoxmt** +* 新增支持下推包含以下聚集函数的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** * `MAX` * `MIN` From 38890451ebddda9549b035cc303e433674d32385 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 24 Mar 2025 17:34:17 +0800 Subject: [PATCH 14/83] performance: update function pushdown --- 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 ae942a36432a..c8f6e308f5fb 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -43,11 +43,11 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档]( )。 -* 新增支持下推以下函数到 TiFlash [#59317](https://github.com/pingcap/tidb/issues/59317) @[guo-shaoge](https://github.com/guo-shaoge) **tw@Oreoxmt** +* 新增支持下推以下函数到 TiFlash [#59317](https://github.com/pingcap/tidb/issues/59317) @[guo-shaoge](https://github.com/guo-shaoge) **tw@Oreoxmt** - * `TRUNCATE` + * `TRUNCATE()` - 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 + 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 * 新增支持下推包含以下聚集函数的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** @@ -59,7 +59,7 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 -* 支持下推以下日期函数到 TiKV [#59365](https://github.com/pingcap/tidb/issues/59365) @[gengliqi](https://github.com/gengliqi) **tw@Oreoxmt** +* 支持下推以下日期函数到 TiKV [#59365](https://github.com/pingcap/tidb/issues/59365) @[gengliqi](https://github.com/gengliqi) **tw@Oreoxmt** * `FROM_UNIXTIME()` * `TIMESTAMPDIFF()` From d4af705c70e04beb934fe22cacb648287ae4f158 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 24 Mar 2025 19:59:51 +0800 Subject: [PATCH 15/83] Apply suggestions from code review Co-authored-by: tiancaiamao Co-authored-by: Zack Zhao <57036248+joccau@users.noreply.github.com> --- releases/release-9.0.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index c8f6e308f5fb..68225351c600 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -37,11 +37,11 @@ TiDB 版本:9.0.0 ### 性能 -* 在几十万甚至上百万用户数的场景下,创建用户,修改用户信息的性能提升了 77 倍 [#55563](https://github.com/pingcap/tidb/issues/55563) @[tiancaiamao](https://github.com/tiancaiamao) **tw@hfxsd** +* 在几十万甚至上百万用户数的场景下,创建用户、修改用户信息的性能提升了 77 倍 [#55563](https://github.com/pingcap/tidb/issues/55563) @[tiancaiamao](https://github.com/tiancaiamao) **tw@hfxsd** 之前的版本,当集群的用户数超过 20 万时,创建修改用户的性能 QPS 会降低到 1。在一些 SaaS 场景,如果需要创建百万个用户,以及定期批量修改用户的密码信息,需要 2 天甚至更久的时间,对于一些 SaaS 业务是不可接受的。v9.0 对这部分 DCL 的性能进行了优化,创建 200万用户仅需 37 分钟,大大提升了 DCL 语句的执行性能,提升了 TiDB 在此类 SaaS 场景的用户体验。 - 更多信息,请参考[用户文档]( )。 + 更多信息,请参考[用户文档](/system-variables.md/#tidb_accelerate_user_creation_update-从-v900-版本开始引入)。 * 新增支持下推以下函数到 TiFlash [#59317](https://github.com/pingcap/tidb/issues/59317) @[guo-shaoge](https://github.com/guo-shaoge) **tw@Oreoxmt** @@ -89,7 +89,7 @@ TiDB 版本:9.0.0 从 v9.0 版本开始,用户可通过设置系统变量 `MAX_USER_CONNECTIONS` ,来限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file/#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 - 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb/dev/partitioned-table/#全局索引/)。 + 更多信息,请参考[用户文档](/system-variables.md/#max_user_connections-从-v900-版本开始引入)。 ### SQL 功能 From 451c50e94beb868f4285768e79bb81a6e21499d5 Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 26 Mar 2025 11:48:19 +0800 Subject: [PATCH 16/83] update SQL cross-AZ traffic monitoring --- releases/release-9.0.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 68225351c600..bdd77fee5130 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -144,15 +144,15 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/workloadrepo.md)。 -* SQL 跨可用区流量观测 [#57543](https://github.com/pingcap/tidb/issues/57543) @[nolouch](https://github.com/nolouch) @[yibin87](https://github.com/yibin87) **tw@Oreoxmt** +* SQL 跨可用区流量观测 [#57543](https://github.com/pingcap/tidb/issues/57543) @[nolouch](https://github.com/nolouch) @[yibin87](https://github.com/yibin87) **tw@Oreoxmt** - 跨可用区 (Avaiable Zone) 部署能够提升集群的容灾能力。在云服务环境中,这种部署方式会产生额外的网络流量费用,例如亚马逊 AWS 会对跨区域和跨可用区的流量计费。对于运行在云服务上的 TiDB 集群来说,更精确监控和分析网络流量变得尤为重要。 + 跨可用区 (Availability Zone, AZ) 部署可以增强 TiDB 集群的容灾能力。然而,在云服务环境中,这种部署方式会产生额外的网络流量费用,例如 AWS 对跨区域和跨可用区的流量进行计费。因此,对于运行在云服务上的 TiDB 集群,更精确地监控和分析网络流量对于成本控制至关重要。 - 自 v9.0.0 开始,TiDB 会记录 SQL 处理的网络流量,并区分跨可用区的流量。相关记录写入 [Statements 日志](/statement-summary-tables.md) 和 [慢日志](/identify-slow-queries.md)。这个特性主要用于协助用户跟踪 TiDB 集群内部的主要数据传输,分析跨区域的流量产生的原因,从而更好地理解和控制相关成本。 + 从 v9.0.0 开始,TiDB 记录 SQL 处理过程中产生的网络流量,并区分跨可用区的流量。相关数据会写入 [`statements_summary` 表](/statement-summary-tables.md)和[慢查询日志](/identify-slow-queries.md)。该功能有助于用户跟踪 TiDB 集群内部的主要数据传输路径,分析跨可用区流量的来源,从而更好地理解和控制相关成本。 - 需要注意的是,当前版本只观测 **查询在集群内** (TiDB, TiKV, TiFlash) 之间产生的网络传输,不包括 DML 和 DDL;另外,所记录的流量数据为解包后的流量,和实际物理流量会有差异。并不能作为网络计费的依据。 + 需要注意的是,当前版本仅监测 SQL 查询在**集群内部**(TiDB、TiKV 和 TiFlash)之间的网络传输,不包括 DML 和 DDL。另外,记录的流量数据为解包后的流量,与实际物理流量存在差异,因此不能直接作为网络计费的依据。 - 更多信息,请参考[用户文档]()。 + 更多信息,请参考[用户文档](/statement-summary-tables.md#statements_summary-字段介绍)。 * 优化 `execution info` 中指标显示 [#56232](https://github.com/pingcap/tidb/issues/56232) @[yibin87](https://github.com/yibin87) **tw@hfxsd** From 120559810b86ae2591b13fae83c9b6632998b00a Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 26 Mar 2025 12:26:39 +0800 Subject: [PATCH 17/83] data migration: add sync-diff-inspector --- releases/release-9.0.0.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index bdd77fee5130..11edfd701795 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -164,7 +164,21 @@ TiDB 版本:9.0.0 ### 安全 +### 数据迁移 +* 将 sync-diff-inspector 从 `pingcap/tidb-tools` 迁移至 `pingcap/tiflow` 代码仓库 [#11672](https://github.com/pingcap/tiflow/issues/11672) @[joechenrh](https://github.com/joechenrh) **tw@Oreoxmt** + + 从 v9.0.0 开始,sync-diff-inspector 工具从 [`pingcap/tidb-tools`](https://github.com/pingcap/tidb-tools) GitHub 代码仓库迁移至 [`pingcap/tiflow`](https://github.com/pingcap/tiflow)。该变更将数据同步和迁移工具([DM](/dm/dm-overview.md)、[TiCDC](/ticdc/ticdc-overview.md) 和 sync-diff-inspector)统一到同一个代码仓库中。 + + 对于 TiDB v9.0.0 及之后版本,你可以使用以下方法之一安装 sync-diff-inspector: + + - TiUP:执行 `tiup install sync-diff-inspector` + - Docker 镜像:执行 `docker pull pingcap/sync-diff-inspector:latest` + - 二进制包:下载 [TiDB 工具包](/download-ecosystem-tools.md) + + [`pingcap/tidb-tools`](https://github.com/pingcap/tidb-tools) 代码仓库现已归档。如果你之前通过 `tidb-tools` 安装 sync-diff-inspector,请改用 TiUP、Docker 镜像或 TiDB 工具包。 + + 更多信息,请参考[用户文档](/sync-diff-inspector/sync-diff-inspector-overview.md)。 ## 兼容性变更 From 123655754a709d1ae5b44a796da57b4d58b4ecf1 Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 26 Mar 2025 12:27:12 +0800 Subject: [PATCH 18/83] add Offline package changes --- releases/release-9.0.0.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 11edfd701795..27c72d716609 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -209,6 +209,9 @@ TiDB 版本:9.0.0 | | | | | | | | | | +### 离线包变更 + +从 v9.0.0 开始,[sync-diff-inspector](/sync-diff-inspector/sync-diff-inspector-overview.md) 工具在 `TiDB-community-toolkit` [二进制软件包](/binary-package.md)中的离线包位置从 `sync_diff_inspector` 变更为 `tiflow-{version}-linux-{arch}.tar.gz`。 ### 操作系统支持变更 From 0bcf33e250ca2318ea78247f8f3aed8728b82979 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 26 Mar 2025 16:36:40 +0800 Subject: [PATCH 19/83] Apply suggestions from code review --- releases/release-9.0.0.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 27c72d716609..0a61582707ee 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -39,7 +39,9 @@ TiDB 版本:9.0.0 * 在几十万甚至上百万用户数的场景下,创建用户、修改用户信息的性能提升了 77 倍 [#55563](https://github.com/pingcap/tidb/issues/55563) @[tiancaiamao](https://github.com/tiancaiamao) **tw@hfxsd** - 之前的版本,当集群的用户数超过 20 万时,创建修改用户的性能 QPS 会降低到 1。在一些 SaaS 场景,如果需要创建百万个用户,以及定期批量修改用户的密码信息,需要 2 天甚至更久的时间,对于一些 SaaS 业务是不可接受的。v9.0 对这部分 DCL 的性能进行了优化,创建 200万用户仅需 37 分钟,大大提升了 DCL 语句的执行性能,提升了 TiDB 在此类 SaaS 场景的用户体验。 + 之前的版本,当集群的用户数超过 20 万时,创建和修改用户的性能 QPS 会降低到 1。在一些 SaaS 场景,如果需要创建百万个用户,以及定期批量修改用户的密码信息,需要 2 天甚至更久的时间,对于一些 SaaS 业务是不可接受的。 + + v9.0.0 对这部分 DCL 的性能进行了优化,创建 200 万用户仅需 37 分钟,大大提升了 DCL 语句的执行性能,提升了 TiDB 在此类 SaaS 场景的用户体验。 更多信息,请参考[用户文档](/system-variables.md/#tidb_accelerate_user_creation_update-从-v900-版本开始引入)。 @@ -77,17 +79,17 @@ TiDB 版本:9.0.0 ### 高可用 -* TiProxy 支持流量回放功能正式发布 [#642](https://github.com/pingcap/tiproxy/issues/642) @[djshow832](https://github.com/djshow832) **tw@hfxsd** +* TiProxy 支持流量回放功能正式发布 (GA) [#642](https://github.com/pingcap/tiproxy/issues/642) @[djshow832](https://github.com/djshow832) **tw@hfxsd** - v1.3.0 开始,TiProxy 以实验特性发布流量回放功能。在 v1.4.0 版本,TiProxy 正式发布流量回放功能。TiProxy 提供专有的 SQL 命令进行流量捕获和流量回放功能。用户可以更加方便的捕获 TiDB 生产集群中的访问流量,并在测试集群中按照指定的速率回放这些流量,完成业务验证。 + TiProxy v1.3.0 将流量回放功能作为实验特性发布。在 TiProxy v1.4.0 版本,流量回放功能正式发布 (GA)。TiProxy 提供专有的 SQL 命令进行流量捕获和流量回放功能。你可以更加方便地捕获 TiDB 生产集群中的访问流量,并在测试集群中按照指定的速率回放这些流量,完成业务验证。 更多信息,请参考[用户文档](/tiproxy/tiproxy-traffic-replay.md)。 ### 稳定性 -* 引入了系统变量 `MAX_USER_CONNECTIONS`,用于限制不同用户可以建立的连接数 [#59203](https://github.com/pingcap/tidb/issues/59203) @[joccau](https://github.com/joccau) **tw@hfxsd** +* 新增系统变量 `MAX_USER_CONNECTIONS`,用于限制不同用户可以建立的连接数 [#59203](https://github.com/pingcap/tidb/issues/59203) @[joccau](https://github.com/joccau) **tw@hfxsd** - 从 v9.0 版本开始,用户可通过设置系统变量 `MAX_USER_CONNECTIONS` ,来限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file/#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 + 从 v9.0.0 版本开始,你可通过设置系统变量 `MAX_USER_CONNECTIONS` ,来限制单个用户对单个 TiDB 节点可建立的连接数,避免由于单个用户消耗过多的 [token](/tidb-configuration-file.md/#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 更多信息,请参考[用户文档](/system-variables.md/#max_user_connections-从-v900-版本开始引入)。 @@ -154,11 +156,11 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/statement-summary-tables.md#statements_summary-字段介绍)。 -* 优化 `execution info` 中指标显示 [#56232](https://github.com/pingcap/tidb/issues/56232) @[yibin87](https://github.com/yibin87) **tw@hfxsd** +* 优化 `EXPLAIN ANALYZE` 输出结果中的 `execution info` 的信息 [#56232](https://github.com/pingcap/tidb/issues/56232) @[yibin87](https://github.com/yibin87) **tw@hfxsd** - [EXPLAIN ANALYZE](/sql-statements/sql-statement-explain-analyze.md) 会执行的 SQL 语句,并在 `execution info` 中记录执行过程的细节,同样的信息在[慢日志](/identify-slow-queries.md)中也会被捕捉。这些信息对分析和理解 SQL 的时间花费有至关重要的作用。 + [`EXPLAIN ANALYZE`](/sql-statements/sql-statement-explain-analyze.md) 可以执行的 SQL 语句,并在 `execution info` 中记录执行过程的细节,同样的信息在[慢日志](/identify-slow-queries.md)中也会被捕捉。这些信息对分析和理解 SQL 的时间花费有至关重要的作用。 - TiDB 在 v9.0.0 中对 `execution info` 的输出重新做了梳理和优化,使每个指标的表达更加准确。比如,`time` 表示算子执行的时钟时间,`loops` 是当前算子被父算子调用的次数,`total_time` 代表所有并发的累加时间。帮助使用者更加准确地理解 SQL 语句的执行过程,做出有针对性的优化策略。 + 在 v9.0.0 优化了 `execution info` 的输出结果,使每个指标的表达更加准确。比如,`time` 表示算子执行的时钟时间,`loops` 是当前算子被父算子调用的次数,`total_time` 代表所有并发的累加时间。这些优化可以帮助你更准确地理解 SQL 语句的执行过程,做出有针对性的优化策略。 更多信息,请参考[用户文档](/sql-statements/sql-statement-explain-analyze.md)。 From fd44ab16182aa91c45111dc473119d24ce746778 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 26 Mar 2025 17:57:49 +0800 Subject: [PATCH 20/83] Apply suggestions from code review --- releases/release-9.0.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 0a61582707ee..485064c74e21 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -51,7 +51,7 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 -* 新增支持下推包含以下聚集函数的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** +* 新增支持下推包含以下聚合函数的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** * `MAX` * `MIN` @@ -71,7 +71,7 @@ TiDB 版本:9.0.0 * TiFlash 支持新的存储格式以提升字符串类型扫描效率 [#9673](https://github.com/pingcap/tiflash/issues/9673) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** - v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,对于长度较小的字符串数值扫描效率不高。在 v9.0.0 版本,TiFlash 支持新的存储格式,对长度小于64字节的字符串数据改进了存储格式,提升了扫描效率,同时不会影响其他的数据存储和扫描效率。将 TiFlash 配置文件中的 `format_version` 设置为 8,可以在新的数据写入时,使用新的存储格式,同时不影响已有数据。 + 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,因此对于长度较小的字符串数据,扫描效率不高。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对小于 64 字节的字符串数据的存储进行了优化,提升了扫描效率,且不会影响其他数据的存储和扫描性能。如需启用新的存储格式,你可以在 TiFlash 配置文件中将 `format_version` 设置为 8。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 建议用户在升级前阅读 [TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 @@ -96,11 +96,11 @@ TiDB 版本:9.0.0 ### SQL 功能 -* 支持对分区表的非唯一列创建全局索引 [#58650](https://github.com/pingcap/tidb/issues/58650) @[Defined2014](https://github.com/Defined2014) @[mjonss](https://github.com/mjonss) **tw@qiancai** +* 支持对分区表的非唯一列创建全局索引 [#58650](https://github.com/pingcap/tidb/issues/58650) @[Defined2014](https://github.com/Defined2014) @[mjonss](https://github.com/mjonss) **tw@qiancai** - 从 v8.3 版本开始,用户可以在分区表创建全局索引来提升查询性能,但是全局索引仅支持对唯一的列创建。从 v9.0 开始,解除了该限制,用户可以对分区表非唯一的列创建全局索引,提升了全局索引的易用性。 + 从 v8.3.0 开始,TiDB 支持用户在分区表的唯一列上创建全局索引以提高查询性能,但不支持在非唯一列上创建全局索引。从 v9.0 版本起,TiDB 取消了这一限制,允许用户在分区表的非唯一列上创建全局索引,提升了全局索引的易用性。 - 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb/dev/partitioned-table/#全局索引/)。 + 更多信息,请参考[全局索引](/partitioned-table.md#全局索引)。 ### 数据库管理 From 5cb80de5327cfd9e76032d16f9ac63484e82a5dd Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 26 Mar 2025 17:57:49 +0800 Subject: [PATCH 21/83] Apply suggestions from code review --- releases/release-9.0.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 0a61582707ee..5ee14775efb1 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -51,7 +51,7 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 -* 新增支持下推包含以下聚集函数的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** +* 新增支持下推包含以下聚合函数的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** * `MAX` * `MIN` @@ -71,7 +71,7 @@ TiDB 版本:9.0.0 * TiFlash 支持新的存储格式以提升字符串类型扫描效率 [#9673](https://github.com/pingcap/tiflash/issues/9673) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** - v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,对于长度较小的字符串数值扫描效率不高。在 v9.0.0 版本,TiFlash 支持新的存储格式,对长度小于64字节的字符串数据改进了存储格式,提升了扫描效率,同时不会影响其他的数据存储和扫描效率。将 TiFlash 配置文件中的 `format_version` 设置为 8,可以在新的数据写入时,使用新的存储格式,同时不影响已有数据。 + 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,因此对于长度较小的字符串数据,扫描效率不高。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对长度小于 64 字节的字符串数据的存储进行了优化,提升了扫描效率,且不会影响其他数据的存储和扫描性能。如需启用新的存储格式,你可以在 TiFlash 配置文件中将 `format_version` 设置为 8。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 建议用户在升级前阅读 [TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 @@ -96,11 +96,11 @@ TiDB 版本:9.0.0 ### SQL 功能 -* 支持对分区表的非唯一列创建全局索引 [#58650](https://github.com/pingcap/tidb/issues/58650) @[Defined2014](https://github.com/Defined2014) @[mjonss](https://github.com/mjonss) **tw@qiancai** +* 支持对分区表的非唯一列创建全局索引 [#58650](https://github.com/pingcap/tidb/issues/58650) @[Defined2014](https://github.com/Defined2014) @[mjonss](https://github.com/mjonss) **tw@qiancai** - 从 v8.3 版本开始,用户可以在分区表创建全局索引来提升查询性能,但是全局索引仅支持对唯一的列创建。从 v9.0 开始,解除了该限制,用户可以对分区表非唯一的列创建全局索引,提升了全局索引的易用性。 + 从 v8.3.0 开始,TiDB 支持用户在分区表的唯一列上创建全局索引以提高查询性能,但不支持在非唯一列上创建全局索引。从 v9.0 版本起,TiDB 取消了这一限制,允许用户在分区表的非唯一列上创建全局索引,提升了全局索引的易用性。 - 更多信息,请参考[用户文档](https://docs.pingcap.com/zh/tidb/dev/partitioned-table/#全局索引/)。 + 更多信息,请参考[全局索引](/partitioned-table.md#全局索引)。 ### 数据库管理 From 77add0283abb430725a0a297d9a480d40e1e7100 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 27 Mar 2025 10:03:35 +0800 Subject: [PATCH 22/83] Apply suggestions from code review --- releases/release-9.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 485064c74e21..4bbe995075df 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -71,7 +71,7 @@ TiDB 版本:9.0.0 * TiFlash 支持新的存储格式以提升字符串类型扫描效率 [#9673](https://github.com/pingcap/tiflash/issues/9673) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** - 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,因此对于长度较小的字符串数据,扫描效率不高。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对小于 64 字节的字符串数据的存储进行了优化,提升了扫描效率,且不会影响其他数据的存储和扫描性能。如需启用新的存储格式,你可以在 TiFlash 配置文件中将 `format_version` 设置为 8。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 + 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,因此对于长度较小的字符串数据,扫描效率不高。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对长度小于 64 字节的字符串数据的存储进行了优化,提升了扫描效率,且不会影响其他数据的存储和扫描性能。如需启用新的存储格式,你可以在 TiFlash 配置文件中将 `format_version` 设置为 8。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 建议用户在升级前阅读 [TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 @@ -100,7 +100,7 @@ TiDB 版本:9.0.0 从 v8.3.0 开始,TiDB 支持用户在分区表的唯一列上创建全局索引以提高查询性能,但不支持在非唯一列上创建全局索引。从 v9.0 版本起,TiDB 取消了这一限制,允许用户在分区表的非唯一列上创建全局索引,提升了全局索引的易用性。 - 更多信息,请参考[全局索引](/partitioned-table.md#全局索引)。 + 更多信息,请参考[用户文档](/partitioned-table.md#全局索引)。 ### 数据库管理 From da900f9ea3eeeba3834224d00b8ea00d92cb98ff Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 27 Mar 2025 11:05:10 +0800 Subject: [PATCH 23/83] Update releases/release-9.0.0.md Co-authored-by: joey-yez <104608045+joey-yez@users.noreply.github.com> --- 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 4bbe995075df..86d442051b24 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -71,7 +71,7 @@ TiDB 版本:9.0.0 * TiFlash 支持新的存储格式以提升字符串类型扫描效率 [#9673](https://github.com/pingcap/tiflash/issues/9673) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** - 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,因此对于长度较小的字符串数据,扫描效率不高。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对长度小于 64 字节的字符串数据的存储进行了优化,提升了扫描效率,且不会影响其他数据的存储和扫描性能。如需启用新的存储格式,你可以在 TiFlash 配置文件中将 `format_version` 设置为 8。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 + 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,因此对于长度较小的字符串数据,扫描效率不高。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对字符串格式数据的存储进行了优化,提升了长度小于 64 字节的字符串数据扫描效率,且不会影响其他数据的存储和扫描性能。如需启用新的存储格式,你可以在 TiFlash 配置文件中将 `format_version` 设置为 8。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 建议用户在升级前阅读 [TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 From 32e2bc6338ecfcc21daada120c6a784302ad3731 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 27 Mar 2025 15:36:56 +0800 Subject: [PATCH 24/83] Apply suggestions from code review --- releases/release-9.0.0.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 86d442051b24..94b7a1dd779b 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -114,17 +114,16 @@ TiDB 版本:9.0.0 ### 可观测性 -* TiDB Workload Repository [#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** +* 增加 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** 很多高频更新的负载指标和状态信息被维护在实例的内存中,这些历史负载数据可以作为数据库的一部分持久化下来。主要用于以下目的: - * **故障诊断:** 在对过往问题的诊断过程中,需要回顾历史活动和事件。持久化的负载数据可以帮助用户复盘过去某个时间段内的状态信息变化,找出异常点;或者精确定位某个数据库会话或 SQL 语句在特定时刻的具体行为。 - + * **故障诊断:** 在对过往问题的诊断过程中,需要回顾历史活动和事件。持久化的负载数据可以帮助用户复盘过去某个时间段内的状态信息变化,找出异常点;或者精确定位某个数据库会话或 SQL 语句在特定时刻的具体行为。 * **自动化运维:** 数据库自治是提升用户体验并降低使用门槛的必然趋势,而实现数据库自动调优需要历史数据作为支撑。基于持久化的历史工作负载数据,TiDB 可以逐步向自动化运维迈进,例如:索引推荐(Index Advisor)、统计信息推荐(Statistics Advisor)、SQL 绑定推荐(SQL Binding Advisor)等。 - 在 v9.0.0 中,通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest) 启用 `Workload Repository`,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。被持久化的内存表分为两类: + 在 v9.0.0 中,你可以通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest-从-v900-版本开始引入) 启用 Workload Repository,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。被持久化的内存表分为两类: - * **存储累计指标的内存表**体积较大,快照和存储成本比较高,这些表会依据 [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) 的设置做批量快照,最小间隔 15 分钟。通过比较任意两个快照间指标的变化,得出这一段时间各个指标的增量。包括以下内存表: + * **存储累计指标的内存表**体积较大,快照和存储成本比较高,这些表会依据 [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval-从-v900-版本开始引入) 的设置做批量快照,最小间隔 15 分钟。通过比较任意两个快照间指标的变化,得出这一段时间各个指标的增量。包括以下内存表: * [`INFORMATION_SCHEMA.TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md) * [`INFORMATION_SCHEMA.TIDB_STATEMENTS_STATS`](/statement-summary-tables.md) (由 `STATEMENTS_SUMMARY` 派生的内存表,计划在未来取代 `STATEMENTS_SUMMARY`。) @@ -132,7 +131,7 @@ TiDB 版本:9.0.0 * [`INFORMATION_SCHEMA.CLIENT_ERRORS_SUMMARY_BY_USER`](/information-schema/client-errors-summary-by-user.md) * [`INFORMATION_SCHEMA.CLIENT_ERRORS_SUMMARY_GLOBAL`](/information-schema/client-errors-summary-global.md) - * **保存即时状态的内存表**刷新很快,通常体积不大,需要做很小间隔的快照才有作用。通过设置 [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval) 的值指定时间间隔,默认为 5 秒。设置为 0 则关闭这个类型的快照。被持久化的这类内存表包括: + * **保存即时状态的内存表**刷新很快,通常体积不大,需要做很小间隔的快照才有作用。通过设置 [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval-从-v900-版本开始引入) 的值指定时间间隔,默认为 5 秒。设置为 `0` 则关闭这个类型的快照。被持久化的这类内存表包括: * [`INFORMATION_SCHEMA.PROCESSLIST`](/information-schema/information-schema-processlist.md) * [`INFORMATION_SCHEMA.DATA_LOCK_WAITS`](/information-schema/information-schema-data-lock-waits.md) @@ -140,7 +139,7 @@ TiDB 版本:9.0.0 * [`INFORMATION_SCHEMA.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) * [`INFORMATION_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) - `Workload Repository` 中的数据会被自动清理,默认保存 7 天。通过设置 [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days) 修改保存时间。 + Workload Repository 中的数据会被自动清理,默认保存 7 天。通过设置 [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days-从-v900-版本开始引入) 修改保存时间。 通过持久化数据库的历史工作负载,TiDB 可以更好地进行故障排查和优化推荐,并在未来推出一系列围绕历史负载的自动化工具,提升数据库运维和诊断的用户体验。 From db6736a549cad9b3a8db919a5baf4aaa34bb3091 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Thu, 27 Mar 2025 15:43:41 +0800 Subject: [PATCH 25/83] Update release-9.0.0.md --- releases/release-9.0.0.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 94b7a1dd779b..5e280427c9d8 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -121,7 +121,7 @@ TiDB 版本:9.0.0 * **故障诊断:** 在对过往问题的诊断过程中,需要回顾历史活动和事件。持久化的负载数据可以帮助用户复盘过去某个时间段内的状态信息变化,找出异常点;或者精确定位某个数据库会话或 SQL 语句在特定时刻的具体行为。 * **自动化运维:** 数据库自治是提升用户体验并降低使用门槛的必然趋势,而实现数据库自动调优需要历史数据作为支撑。基于持久化的历史工作负载数据,TiDB 可以逐步向自动化运维迈进,例如:索引推荐(Index Advisor)、统计信息推荐(Statistics Advisor)、SQL 绑定推荐(SQL Binding Advisor)等。 - 在 v9.0.0 中,你可以通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest-从-v900-版本开始引入) 启用 Workload Repository,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。被持久化的内存表分为两类: + 在 v9.0.0 中,你可以通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest-从-v900-版本开始引入) 启用 Workload Repository,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。通过持久化数据库的历史工作负载,TiDB 可以更好地进行故障排查和优化推荐,并在未来推出一系列围绕历史负载的自动化工具,提升数据库运维和诊断的用户体验。被持久化的内存表分为两类: * **存储累计指标的内存表**体积较大,快照和存储成本比较高,这些表会依据 [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval-从-v900-版本开始引入) 的设置做批量快照,最小间隔 15 分钟。通过比较任意两个快照间指标的变化,得出这一段时间各个指标的增量。包括以下内存表: @@ -141,8 +141,6 @@ TiDB 版本:9.0.0 Workload Repository 中的数据会被自动清理,默认保存 7 天。通过设置 [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days-从-v900-版本开始引入) 修改保存时间。 - 通过持久化数据库的历史工作负载,TiDB 可以更好地进行故障排查和优化推荐,并在未来推出一系列围绕历史负载的自动化工具,提升数据库运维和诊断的用户体验。 - 更多信息,请参考[用户文档](/workloadrepo.md)。 * SQL 跨可用区流量观测 [#57543](https://github.com/pingcap/tidb/issues/57543) @[nolouch](https://github.com/nolouch) @[yibin87](https://github.com/yibin87) **tw@Oreoxmt** From 59583c10dcbb9791a0b63ad0f05c9cd09e60070d Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 28 Mar 2025 10:59:16 +0800 Subject: [PATCH 26/83] Update releases/release-9.0.0.md --- releases/release-9.0.0.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 5e280427c9d8..898e7393034b 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -71,9 +71,12 @@ TiDB 版本:9.0.0 * TiFlash 支持新的存储格式以提升字符串类型扫描效率 [#9673](https://github.com/pingcap/tiflash/issues/9673) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** - 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,因此对于长度较小的字符串数据,扫描效率不高。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对字符串格式数据的存储进行了优化,提升了长度小于 64 字节的字符串数据扫描效率,且不会影响其他数据的存储和扫描性能。如需启用新的存储格式,你可以在 TiFlash 配置文件中将 `format_version` 设置为 8。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 + 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,因此对于长度较小的字符串数据,扫描效率不高。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对字符串格式数据的存储进行了优化,提升了长度小于 64 字节的字符串数据扫描效率,且不会影响其他数据的存储和扫描性能。 - 建议用户在升级前阅读 [TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 + - 对于新建的 v9.0.0 或之后版本的 TiDB 集群,TiFlash 默认会采用新的存储格式。 + - 对于升级到 v9.0.0 或之后版本的 TiDB 集群,建议用户在升级前阅读 [TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 + - 如果升级前未指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 TiFlash 默认采用新的存储格式。 + - 如果升级前指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 `format_version` 的值保持不变, TiFlash 会继续使用 `format_version` 指定的存储格式。此时如需启用新的存储格式,请在 TiFlash 配置文件中将 `format_version` 设置为 `8`。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 更多信息,请参考[用户文档](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml)。 From 31fec3458458ad86d00b58b883196d1472435c04 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 28 Mar 2025 11:00:47 +0800 Subject: [PATCH 27/83] 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 898e7393034b..63a20e47423c 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -78,7 +78,7 @@ TiDB 版本:9.0.0 - 如果升级前未指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 TiFlash 默认采用新的存储格式。 - 如果升级前指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 `format_version` 的值保持不变, TiFlash 会继续使用 `format_version` 指定的存储格式。此时如需启用新的存储格式,请在 TiFlash 配置文件中将 `format_version` 设置为 `8`。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 - 更多信息,请参考[用户文档](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml)。 + 更多信息,请参考[用户文档](/tiflash/tiflash-configuration.md#format_version)。 ### 高可用 From 4e4e8f210fa17040cf040ad2eee58b396af1e3fa Mon Sep 17 00:00:00 2001 From: Aolin Date: Fri, 28 Mar 2025 11:08:19 +0800 Subject: [PATCH 28/83] Apply suggestions from code review --- releases/release-9.0.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 63a20e47423c..bbe9a8ee3333 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -168,6 +168,10 @@ TiDB 版本:9.0.0 ### 数据迁移 +* TiDB Lightning 与 TiDB `sql_require_primary_key=ON` 兼容 [#57479](https://github.com/pingcap/tidb/issues/57479) @[lance6716](https://github.com/lance6716) **tw@Oreoxmt** + + 当你在 TiDB 中启用系统变量 [`sql_require_primary_key`](/system-variables.md#sql_require_primary_key-从-v630-版本开始引入) 后,表必须包含主键。为避免表创建失败,TiDB Lightning 为其内部的错误日志表和冲突检测表(`conflict_error_v4`、`type_error_v2` 和 `conflict_records_v2`)添加了默认主键。如果你的自动化脚本使用了这些内部表,请更新脚本以适配包含主键的新表结构。 + * 将 sync-diff-inspector 从 `pingcap/tidb-tools` 迁移至 `pingcap/tiflow` 代码仓库 [#11672](https://github.com/pingcap/tiflow/issues/11672) @[joechenrh](https://github.com/joechenrh) **tw@Oreoxmt** 从 v9.0.0 开始,sync-diff-inspector 工具从 [`pingcap/tidb-tools`](https://github.com/pingcap/tidb-tools) GitHub 代码仓库迁移至 [`pingcap/tiflow`](https://github.com/pingcap/tiflow)。该变更将数据同步和迁移工具([DM](/dm/dm-overview.md)、[TiCDC](/ticdc/ticdc-overview.md) 和 sync-diff-inspector)统一到同一个代码仓库中。 From 890514b0ed4a2440cb24c8411cdd647708308971 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 31 Mar 2025 12:32:01 +0800 Subject: [PATCH 29/83] Apply suggestions from code review --- releases/release-9.0.0.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index bbe9a8ee3333..0838fd3ee651 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -90,9 +90,9 @@ TiDB 版本:9.0.0 ### 稳定性 -* 新增系统变量 `MAX_USER_CONNECTIONS`,用于限制不同用户可以建立的连接数 [#59203](https://github.com/pingcap/tidb/issues/59203) @[joccau](https://github.com/joccau) **tw@hfxsd** +* 新增系统变量 `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) 导致其他用户提交的请求得不到及时响应的问题。 + 从 v9.0.0 版本开始,你可通过设置系统变量 `max_user_connections` ,来限制单个用户对单个 TiDB 节点可建立的连接数,避免由于单个用户消耗过多的 [token](/tidb-configuration-file.md/#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 更多信息,请参考[用户文档](/system-variables.md/#max_user_connections-从-v900-版本开始引入)。 @@ -200,11 +200,14 @@ TiDB 版本:9.0.0 | 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| -| MAX_USER_CONNECTIONS | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file/#token-limit) 导致其他用户提交的请求得不到及时响应的问题 | -| [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest)| 新增 | 这变量用户设置 [Workload Repository](/workloadrepo.md) 的写入目标。 默认为空,不启用。 设置为 `table` 写入 TiKV 。| -| [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 统一快照的时间间隔。 | -| [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 快速时间快照的间隔。 | -| [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 中数据保存的天数。 | +| `txn_scope` | 删除 | 在 v9.0.0 中,该变量被移除。 | +| [`max_user_connections`](/system-variables.md/#max_user_connections-从-v900-版本开始引入) | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file.md/#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 | +| [`tidb_accelerate_user_creation_update`](/system-variables.md/#tidb_accelerate_user_creation_update-从-v900-版本开始引入)| 新增 | 用于在用户数量过多的场景下,提升创建用户、修改用户信息的性能。 | +| [`tidb_max_dist_task_nodes`](/system-variables.md/#tidb_max_dist_task_nodes-从-v900-版本开始引入)| 新增 | 控制分布式框架任务可使用的最大 TiDB 节点数上限。默认值为 `-1`,表示自动模式。在此模式下,系统将自动选择合适的节点数量。 | +| [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval-从-v900-版本开始引入) | 新增 | 控制 [Workload Repository](/workloadrepo.md) 的基于时间的采样过程的采样间隔。 | +| [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest-从-v900-版本开始引入)| 新增 | 控制 [Workload Repository](/workloadrepo.md) 的目标位置。默认为空 `''`,即不启用。设置为 `'table'` 会将数据写入到 TiKV。| +| [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days-从-v900-版本开始引入) | 新增 | 控制 [Workload Repository](/workloadrepo.md) 中数据保存的天数。 | +| [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval-从-v900-版本开始引入) | 新增 | 控制 [TiDB Workload Repository](/workloadrepo.md) 的快照采样过程的采样间隔。 | | | | | @@ -212,7 +215,7 @@ TiDB 版本:9.0.0 | 配置文件或组件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | -| | | | | +| BR | [`--checkpoint-storage`](br/br-checkpoint-restore.md#实现细节-将断点数据存储在下游集群) | 新增 | 用于指定断点数据存储的外部存储。 | | | | | | ### 离线包变更 From ffede3d63ec9397e65e9b62eee98ef3c9ae1f89a Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 31 Mar 2025 18:35:14 +0800 Subject: [PATCH 30/83] 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 0838fd3ee651..0914973aa5bf 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -249,7 +249,7 @@ TiDB 版本:9.0.0 * TiDB Lightning 参数 [`conflict.max-record-rows`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 计划在未来版本中废弃,并在后续版本中删除。该参数将由 [`conflict.threshold`](/tidb-lightning/tidb-lightning-configuration.md#tidb-lightning-任务配置) 替代,即记录的冲突记录数和单个导入任务允许出现的冲突记录数的上限数保持一致。 * 从 v6.3.0 开始,分区表默认使用[动态裁剪模式](/partitioned-table.md#动态裁剪模式),相比静态裁剪模式,动态裁剪模式支持 IndexJoin、Plan Cache 等特性,性能表现更好。在未来版本中,静态裁剪模式将被废弃。 * 配置项 [`concurrently-init-stats`](/tidb-configuration-file.md#concurrently-init-stats-从-v810-和-v752-版本开始引入) 用于控制初始化统计信息缓存的并发模式,并从 v8.2 开始默认启用。计划在后续版本中仅支持并发模式,因此该配置项将被移除。 -* 算子 `indexMergeJoin` 是表连接的一种方式,目前已经被其他连接方式取代,`indexMergeJoin` 计划在未来版本废弃。对应的系统变量[`tidb_enable_index_merge_join`](/system-variables.md#tidb_enable_index_merge_join) 也将被一同废弃。 +* 算子 `indexMergeJoin` 是表连接的一种方式,目前已经被其他连接方式取代,`indexMergeJoin` 计划在未来版本废弃。对应的系统变量 [`tidb_enable_index_merge_join`](/system-variables.md#tidb_enable_index_merge_join) 也将被一同废弃。 ## 改进提升 From 7db6e73edf300c3b64d5f92e821488ddf6e18e02 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 1 Apr 2025 10:33:52 +0800 Subject: [PATCH 31/83] update index advisor Co-authored-by: Roger Song --- 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 0914973aa5bf..c54de6a468b6 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -109,7 +109,7 @@ TiDB 版本:9.0.0 * TiDB 索引推荐 [#12303](https://github.com/pingcap/tidb/issues/12303) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** - 索引设计在数据库性能优化中扮演非常重要的作用。自 v9.0.0 起,TiDB 在内核中加入了索引推荐。索引推荐能够分析高频查询的模式并推荐最佳索引策略,协助用户快速实现数据库性能调优,同时降低技术团队的学习门槛。 + 索引设计在数据库性能优化中扮演非常重要的作用。TiDB 自 v8.5.0 在内核中加入了索引推荐,并不断完善增强。索引推荐能够分析高频查询的模式并推荐最佳索引策略,协助用户快速实现数据库性能调优,同时降低技术团队的学习门槛。 通过 [`RECOMMEND INDEX`](/index-advisor.md) 语法,用户可以选择为某条 SQL 语句生成索引推荐,也可以自动读取历史负载中的高频 SQL 语句,做批量索引推荐。推荐结果保存在 `mysql.index_advisor_results` 中,可在后续随时查看。 From bc393a80df63bc10a104e566031a23a2df39e72a Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 7 Apr 2025 09:54:25 +0800 Subject: [PATCH 32/83] Apply suggestions from code review --- releases/release-9.0.0.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index c54de6a468b6..60f34d461693 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -76,7 +76,7 @@ TiDB 版本:9.0.0 - 对于新建的 v9.0.0 或之后版本的 TiDB 集群,TiFlash 默认会采用新的存储格式。 - 对于升级到 v9.0.0 或之后版本的 TiDB 集群,建议用户在升级前阅读 [TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 - 如果升级前未指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 TiFlash 默认采用新的存储格式。 - - 如果升级前指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 `format_version` 的值保持不变, TiFlash 会继续使用 `format_version` 指定的存储格式。此时如需启用新的存储格式,请在 TiFlash 配置文件中将 `format_version` 设置为 `8`。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 + - 如果升级前指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 `format_version` 的值保持不变,TiFlash 会继续使用 `format_version` 指定的存储格式。此时如需启用新的存储格式,请在 TiFlash 配置文件中将 `format_version` 设置为 `8`。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 更多信息,请参考[用户文档](/tiflash/tiflash-configuration.md#format_version)。 @@ -216,6 +216,8 @@ TiDB 版本:9.0.0 | 配置文件或组件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | | BR | [`--checkpoint-storage`](br/br-checkpoint-restore.md#实现细节-将断点数据存储在下游集群) | 新增 | 用于指定断点数据存储的外部存储。 | +| TiProxy | [`enable-traffic-replay`](/tiproxy/tiproxy-configuration.md#enable-traffic-replay) | 新增 | 用于指定是否开启[流量回放](/tiproxy/tiproxy-traffic-replay.md)功能。如果为 `false`,则在流量捕获和流量回放时会报错。| +| TiProxy | [`encryption-key-path`](/tiproxy/tiproxy-configuration.md#encryption-key-path) | 新增 | 用于指定流量捕获时用于加密流量文件的密钥的文件路径。| | | | | | ### 离线包变更 From 800502068d2173bcbf2d21143e92808f7895d9e6 Mon Sep 17 00:00:00 2001 From: qiancai Date: Mon, 7 Apr 2025 15:35:35 +0800 Subject: [PATCH 33/83] add compatibility changes --- releases/release-9.0.0.md | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 5ee14775efb1..e18687f137ed 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -190,26 +190,32 @@ TiDB 版本:9.0.0 ### 行为变更 - +- 从 v9.0.0 开始,为了优化字符串数据的读写性能,TiFlash 针对字符串数据的存储格式进行了改动。因此,升级 TiFlash 到 v9.0.0 或以上版本后,不支持原地降级到之前的版本。更多信息,请参考[TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 +- 从 v9.0.0 开始,TiCDC 新增[安全机制](/ticdc/ticdc-manage-changefeed.md#安全机制),防止用户误将同一个 TiDB 集群同时作为上游和下游进行数据同步,避免由此引发的循环复制及数据异常问题。 在执行创建、更新或恢复数据同步任务时,TiCDC 会自动检查上下游 TiDB 集群的 `cluster_id` 是否相同。一旦发现上下游集群 `cluster_id` 相同,TiCDC 会拒绝执行该任务。 ### 系统变量 | 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| | MAX_USER_CONNECTIONS | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file/#token-limit) 导致其他用户提交的请求得不到及时响应的问题 | +| [`mpp_version`](/system-variables.md#mpp_version-从-v660-版本开始引入) | 修改 | 该变量新增可选值 `3`,用于开启 TiFlash 新的字符串数据交换格式。当该变量的值未指定时,TiDB 将自动选择 MPP 执行计划的最新版本 `3`,以提高字符串的序列化和反序列化效率,从而提升查询性能。 | +| [`pd_enable_follower_handle_region`](/system-variables.md#pd_enable_follower_handle_region-从-v760-版本开始引入) | 修改 | 默认值从 `OFF` 变更为 `ON`。当该值为 `ON` 时,TiDB 在获取 Region 信息时会将请求均匀地发送到所有 PD 节点上,因此 PD follower 也可以处理 Region 信息请求,从而减轻 PD leader 的 CPU 压力。从 v9.0.0 开始,当该变量值为 `ON` 时,TiDB Lightning 的 Region 信息请求也会被均匀发送到所有 PD 节点。 | +| [`tidb_pipelined_dml_resource_policy`](/system-variables.md#tidb_pipelined_dml_resource_policy-从-v900-版本开始引入) | 新增 | 该变量控制 [Pipelined DML](/pipelined-dml.md) 的资源使用策略,仅在 [`tidb_dml_type`](#tidb_dml_type-从-v800-版本开始引入) 为 `bulk` 时生效。| | [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest)| 新增 | 这变量用户设置 [Workload Repository](/workloadrepo.md) 的写入目标。 默认为空,不启用。 设置为 `table` 写入 TiKV 。| | [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 统一快照的时间间隔。 | | [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 快速时间快照的间隔。 | | [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 中数据保存的天数。 | | | | | - ### 配置参数 | 配置文件或组件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | -| | | | | -| | | | | +| TiKV | [`storage.max-ts.action-on-invalid-update`](/tikv-configuration-file.md#action-on-invalid-update-从-v900-版本开始引入) | 新增 | 指定当检测到非法的 `max-ts` 更新请求时,TiKV 的处理方式。默认值为 `"panic"`,代表 TiKV 检测到非法的 `max-ts` 更新请求时会 panic。 | +| TiKV | [`storage.max-ts.cache-sync-interval`](/tikv-configuration-file.md#cache-sync-interval-从-v900-版本开始引入) | 新增 | 控制 TiKV 更新本地 PD TSO 缓存的时间间隔。默认值为 `"15s"`。 | +| TiKV | [`storage.max-ts.max-drift`](/tikv-configuration-file.md#max-drift-从-v900-版本开始引入) | 新增 | 定义当读写请求使用的 TS 超过 TiKV 缓存的 PD TSO 时,所允许的最长超出时间。默认值为`"60s"`。 | +| TiFlash| [`format_version`](/tiflash/tiflash-configuration.md#format_version) | 修改 | 默认值从 `7` 变更为 `8`。`8` 为 v9.0.0 及以后版本的 TiFlash 的默认文件格式,该格式用于支持新的字符串序列化方案,可提升字符串的读写性能。 | +| TiCDC | [`newarch`](/ticdc/ticdc-server-config.md#newarch) | 新增 | 控制是否开启 [TiCDC 新架构](/ticdc/ticdc-new-arch.md)。默认值为不设置,表示使用老架构。该配置项仅用于新架构,如果在 TiCDC 老架构的配置文件中添加该配置项,可能会导致解析失败。 | ### 离线包变更 @@ -220,6 +226,13 @@ TiDB 版本:9.0.0 升级 TiDB 前,请务必确保你的操作系统版本符合[操作系统及平台要求](/hardware-and-software-requirements.md#操作系统及平台要求)。 +### 系统表变更 + +| 系统表 | 变更类型 | 描述 | +| -------- | -------- | -------- | +| `mysql.user` | 修改 | 新增 `cluster_id` 列,用于记录 TiDB 集群的唯一标识,注意该值为只读,不可修改。 | + + ## 移除功能 From 15e215f053b65f54c23cf0b652063edfa0650937 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 7 Apr 2025 16:15:00 +0800 Subject: [PATCH 34/83] Update releases/release-9.0.0.md --- releases/release-9.0.0.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index e18687f137ed..f8e507fbd8e5 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -197,7 +197,10 @@ TiDB 版本:9.0.0 | 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| -| MAX_USER_CONNECTIONS | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file/#token-limit) 导致其他用户提交的请求得不到及时响应的问题 | +| `txn_scope` | 删除 | 在 v9.0.0 中,该变量被移除。 | +| [`max_user_connections`](/system-variables.md/#max_user_connections-从-v900-版本开始引入) | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file.md/#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 | +| [`tidb_accelerate_user_creation_update`](/system-variables.md/#tidb_accelerate_user_creation_update-从-v900-版本开始引入)| 新增 | 用于在用户数量过多的场景下,提升创建用户、修改用户信息的性能。 | +| [`tidb_max_dist_task_nodes`](/system-variables.md/#tidb_max_dist_task_nodes-从-v900-版本开始引入)| 新增 | 控制分布式框架任务可使用的最大 TiDB 节点数上限。默认值为 `-1`,表示自动模式。在此模式下,系统将自动选择合适的节点数量。 | | [`mpp_version`](/system-variables.md#mpp_version-从-v660-版本开始引入) | 修改 | 该变量新增可选值 `3`,用于开启 TiFlash 新的字符串数据交换格式。当该变量的值未指定时,TiDB 将自动选择 MPP 执行计划的最新版本 `3`,以提高字符串的序列化和反序列化效率,从而提升查询性能。 | | [`pd_enable_follower_handle_region`](/system-variables.md#pd_enable_follower_handle_region-从-v760-版本开始引入) | 修改 | 默认值从 `OFF` 变更为 `ON`。当该值为 `ON` 时,TiDB 在获取 Region 信息时会将请求均匀地发送到所有 PD 节点上,因此 PD follower 也可以处理 Region 信息请求,从而减轻 PD leader 的 CPU 压力。从 v9.0.0 开始,当该变量值为 `ON` 时,TiDB Lightning 的 Region 信息请求也会被均匀发送到所有 PD 节点。 | | [`tidb_pipelined_dml_resource_policy`](/system-variables.md#tidb_pipelined_dml_resource_policy-从-v900-版本开始引入) | 新增 | 该变量控制 [Pipelined DML](/pipelined-dml.md) 的资源使用策略,仅在 [`tidb_dml_type`](#tidb_dml_type-从-v800-版本开始引入) 为 `bulk` 时生效。| From a11e76c6267fb28457716c8191e31f19e064d625 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 8 Apr 2025 15:58:46 +0800 Subject: [PATCH 35/83] Update releases/release-9.0.0.md --- releases/release-9.0.0.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index f8e507fbd8e5..34a4225ee755 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -219,6 +219,9 @@ TiDB 版本:9.0.0 | TiKV | [`storage.max-ts.max-drift`](/tikv-configuration-file.md#max-drift-从-v900-版本开始引入) | 新增 | 定义当读写请求使用的 TS 超过 TiKV 缓存的 PD TSO 时,所允许的最长超出时间。默认值为`"60s"`。 | | TiFlash| [`format_version`](/tiflash/tiflash-configuration.md#format_version) | 修改 | 默认值从 `7` 变更为 `8`。`8` 为 v9.0.0 及以后版本的 TiFlash 的默认文件格式,该格式用于支持新的字符串序列化方案,可提升字符串的读写性能。 | | TiCDC | [`newarch`](/ticdc/ticdc-server-config.md#newarch) | 新增 | 控制是否开启 [TiCDC 新架构](/ticdc/ticdc-new-arch.md)。默认值为不设置,表示使用老架构。该配置项仅用于新架构,如果在 TiCDC 老架构的配置文件中添加该配置项,可能会导致解析失败。 | +| BR | [`--checkpoint-storage`](br/br-checkpoint-restore.md#实现细节-将断点数据存储在下游集群) | 新增 | 用于指定断点数据存储的外部存储。 | +| TiProxy | [`enable-traffic-replay`](/tiproxy/tiproxy-configuration.md#enable-traffic-replay) | 新增 | 用于指定是否开启[流量回放](/tiproxy/tiproxy-traffic-replay.md)功能。如果为 `false`,则在流量捕获和流量回放时会报错。| +| TiProxy | [`encryption-key-path`](/tiproxy/tiproxy-configuration.md#encryption-key-path) | 新增 | 用于指定流量捕获时用于加密流量文件的密钥的文件路径。| ### 离线包变更 From f96e014e04924ec166af602b8aa897e7fc2f2c22 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 14 Apr 2025 09:29:26 +0800 Subject: [PATCH 36/83] 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 34a4225ee755..07ccde399bd8 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -217,7 +217,7 @@ TiDB 版本:9.0.0 | TiKV | [`storage.max-ts.action-on-invalid-update`](/tikv-configuration-file.md#action-on-invalid-update-从-v900-版本开始引入) | 新增 | 指定当检测到非法的 `max-ts` 更新请求时,TiKV 的处理方式。默认值为 `"panic"`,代表 TiKV 检测到非法的 `max-ts` 更新请求时会 panic。 | | TiKV | [`storage.max-ts.cache-sync-interval`](/tikv-configuration-file.md#cache-sync-interval-从-v900-版本开始引入) | 新增 | 控制 TiKV 更新本地 PD TSO 缓存的时间间隔。默认值为 `"15s"`。 | | TiKV | [`storage.max-ts.max-drift`](/tikv-configuration-file.md#max-drift-从-v900-版本开始引入) | 新增 | 定义当读写请求使用的 TS 超过 TiKV 缓存的 PD TSO 时,所允许的最长超出时间。默认值为`"60s"`。 | -| TiFlash| [`format_version`](/tiflash/tiflash-configuration.md#format_version) | 修改 | 默认值从 `7` 变更为 `8`。`8` 为 v9.0.0 及以后版本的 TiFlash 的默认文件格式,该格式用于支持新的字符串序列化方案,可提升字符串的读写性能。 | +| TiFlash | [`format_version`](/tiflash/tiflash-configuration.md#format_version) | 修改 | 默认值从 `7` 变更为 `8`,代表 v9.0.0 以及以后版本 DTFile 文件的默认格式 `8`。该格式用于支持新的字符串序列化方案,可提升字符串的读写性能。 | | TiCDC | [`newarch`](/ticdc/ticdc-server-config.md#newarch) | 新增 | 控制是否开启 [TiCDC 新架构](/ticdc/ticdc-new-arch.md)。默认值为不设置,表示使用老架构。该配置项仅用于新架构,如果在 TiCDC 老架构的配置文件中添加该配置项,可能会导致解析失败。 | | BR | [`--checkpoint-storage`](br/br-checkpoint-restore.md#实现细节-将断点数据存储在下游集群) | 新增 | 用于指定断点数据存储的外部存储。 | | TiProxy | [`enable-traffic-replay`](/tiproxy/tiproxy-configuration.md#enable-traffic-replay) | 新增 | 用于指定是否开启[流量回放](/tiproxy/tiproxy-traffic-replay.md)功能。如果为 `false`,则在流量捕获和流量回放时会报错。| From 1002005327a35327a1b5af26efb72a6b8c9eb757 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 14 Apr 2025 09:30:48 +0800 Subject: [PATCH 37/83] 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 07ccde399bd8..aad7b7798a3c 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -236,7 +236,7 @@ TiDB 版本:9.0.0 | 系统表 | 变更类型 | 描述 | | -------- | -------- | -------- | -| `mysql.user` | 修改 | 新增 `cluster_id` 列,用于记录 TiDB 集群的唯一标识,注意该值为只读,不可修改。 | +| [`mysql.tidb`](/mysql-schema/mysql-schema.md#集群状态系统表) | 修改 | 新增 `cluster_id` 字段,用于记录 TiDB 集群的唯一标识,注意该值为只读,不可修改。 | From 7174c4a6070c05d4d4d9cdeee9413207c76ddd03 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 14 Apr 2025 15:40:45 +0800 Subject: [PATCH 38/83] update Index Advisor --- releases/release-9.0.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index aad7b7798a3c..422f6027226a 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -104,11 +104,11 @@ TiDB 版本:9.0.0 ### 数据库管理 -* TiDB 索引推荐 [#12303](https://github.com/pingcap/tidb/issues/12303) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** +* TiDB 索引推荐 (Index Advisor) [#12303](https://github.com/pingcap/tidb/issues/12303) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** - 索引设计在数据库性能优化中扮演非常重要的作用。自 v9.0.0 起,TiDB 在内核中加入了索引推荐。索引推荐能够分析高频查询的模式并推荐最佳索引策略,协助用户快速实现数据库性能调优,同时降低技术团队的学习门槛。 + 索引设计在数据库性能优化中至关重要。从 v8.5.0 开始,TiDB 引入索引推荐 (Index Advisor) 功能,并持续进行改进和增强。该功能可以分析高频查询模式,推荐最优索引策略,帮助你更高效地进行性能调优,并降低使用门槛。 - 通过 [`RECOMMEND INDEX`](/index-advisor.md) 语法,用户可以选择为某条 SQL 语句生成索引推荐,也可以自动读取历史负载中的高频 SQL 语句,做批量索引推荐。推荐结果保存在 `mysql.index_advisor_results` 中,可在后续随时查看。 + 你可以使用 [`RECOMMEND INDEX`](/index-advisor.md#使用-recommend-index-语句推荐索引) SQL 语句为某条 SQL 语句生成索引推荐,或自动分析历史负载中的高频 SQL 语句,实现批量推荐。推荐结果存储在 `mysql.index_advisor_results` 表中,你可以查询此表以查看推荐的索引。 更多信息,请参考[用户文档](/index-advisor.md)。 From dbae3013877d79c01c9b48ddf23d486b747dfcf7 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 14 Apr 2025 15:47:49 +0800 Subject: [PATCH 39/83] add sql_require_primary_key --- releases/release-9.0.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 422f6027226a..deef5f8b648b 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -168,6 +168,10 @@ TiDB 版本:9.0.0 ### 数据迁移 +* TiDB Lightning 与 TiDB `sql_require_primary_key=ON` 兼容 [#57479](https://github.com/pingcap/tidb/issues/57479) @[lance6716](https://github.com/lance6716) **tw@Oreoxmt** + + 当你在 TiDB 中启用系统变量 [`sql_require_primary_key`](/system-variables.md#sql_require_primary_key-从-v630-版本开始引入) 后,表必须包含主键。为避免表创建失败,TiDB Lightning 为其内部的错误日志表和冲突检测表(`conflict_error_v4`、`type_error_v2` 和 `conflict_records_v2`)添加了默认主键。如果你的自动化脚本使用了这些内部表,请更新脚本以适配包含主键的新表结构。 + * 将 sync-diff-inspector 从 `pingcap/tidb-tools` 迁移至 `pingcap/tiflow` 代码仓库 [#11672](https://github.com/pingcap/tiflow/issues/11672) @[joechenrh](https://github.com/joechenrh) **tw@Oreoxmt** 从 v9.0.0 开始,sync-diff-inspector 工具从 [`pingcap/tidb-tools`](https://github.com/pingcap/tidb-tools) GitHub 代码仓库迁移至 [`pingcap/tiflow`](https://github.com/pingcap/tiflow)。该变更将数据同步和迁移工具([DM](/dm/dm-overview.md)、[TiCDC](/ticdc/ticdc-overview.md) 和 sync-diff-inspector)统一到同一个代码仓库中。 From 7b5ac26aa98feaa7868eddb95d2269b58aa0adfc Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 14 Apr 2025 16:08:47 +0800 Subject: [PATCH 40/83] update DM log redaction --- releases/release-9.0.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index deef5f8b648b..9260f2eca0ae 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -168,6 +168,12 @@ TiDB 版本:9.0.0 ### 数据迁移 +* 支持 DM 日志查询参数脱敏 [#11489](https://github.com/pingcap/tiflow/issues/11489) @[db-will](https://github.com/db-will) **tw@Oreoxmt** + + 从 v9.0.0 开始,你可以通过 `redact-info-log` 配置项控制是否启用 DM 日志脱敏功能。启用后,DM 日志中包含敏感数据的查询参数将被替换为 `?` 占位符。如需开启该功能,你可以在 DM-worker 配置文件中设置 `redact-info-log` 为 `true`,或在启动 DM 时传入参数 `--redact-info-log=true`。该功能仅对查询参数进行脱敏,不会脱敏整个 SQL 语句,并且需要重启 DM-worker 才能生效。 + + 更多信息,请参考[用户文档](/dm/dm-worker-configuration-file.md#redact-info-log-从-v900-版本开始引入)。 + * TiDB Lightning 与 TiDB `sql_require_primary_key=ON` 兼容 [#57479](https://github.com/pingcap/tidb/issues/57479) @[lance6716](https://github.com/lance6716) **tw@Oreoxmt** 当你在 TiDB 中启用系统变量 [`sql_require_primary_key`](/system-variables.md#sql_require_primary_key-从-v630-版本开始引入) 后,表必须包含主键。为避免表创建失败,TiDB Lightning 为其内部的错误日志表和冲突检测表(`conflict_error_v4`、`type_error_v2` 和 `conflict_records_v2`)添加了默认主键。如果你的自动化脚本使用了这些内部表,请更新脚本以适配包含主键的新表结构。 From 5ff93340996245e0664d90dac45d29f64d4ab52d Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 14 Apr 2025 16:24:01 +0800 Subject: [PATCH 41/83] Compatibility changes: add tidb_hash_join_version, hashagg_use_magic_hash, and redact-info-log --- releases/release-9.0.0.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 9260f2eca0ae..c0ddc9a68f97 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -208,6 +208,7 @@ TiDB 版本:9.0.0 | 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| | `txn_scope` | 删除 | 在 v9.0.0 中,该变量被移除。 | +| [`tidb_hash_join_version`](/system-variables.md#tidb_hash_join_version-从-v840-版本开始引入) | 修改 | 经进一步的测试后,默认值从 `legacy` 变更为 `optimized`,即 TiDB 在执行 Hash Join 算子时使用 [Hash Join 算子的优化版](/sql-statements/sql-statement-explain-analyze.md#hashjoinv2),以提升 Hash Join 性能。 | | [`max_user_connections`](/system-variables.md/#max_user_connections-从-v900-版本开始引入) | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file.md/#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 | | [`tidb_accelerate_user_creation_update`](/system-variables.md/#tidb_accelerate_user_creation_update-从-v900-版本开始引入)| 新增 | 用于在用户数量过多的场景下,提升创建用户、修改用户信息的性能。 | | [`tidb_max_dist_task_nodes`](/system-variables.md/#tidb_max_dist_task_nodes-从-v900-版本开始引入)| 新增 | 控制分布式框架任务可使用的最大 TiDB 节点数上限。默认值为 `-1`,表示自动模式。在此模式下,系统将自动选择合适的节点数量。 | @@ -224,12 +225,14 @@ TiDB 版本:9.0.0 | 配置文件或组件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | +| TiKV | [`hashagg_use_magic_hash`](/tikv-configuration-file.md#hashagg_use_magic_hash-从-v900-版本开始引入) | 新增 | 控制 TiFlash 在进行聚合操作时使用的哈希函数。 | | TiKV | [`storage.max-ts.action-on-invalid-update`](/tikv-configuration-file.md#action-on-invalid-update-从-v900-版本开始引入) | 新增 | 指定当检测到非法的 `max-ts` 更新请求时,TiKV 的处理方式。默认值为 `"panic"`,代表 TiKV 检测到非法的 `max-ts` 更新请求时会 panic。 | | TiKV | [`storage.max-ts.cache-sync-interval`](/tikv-configuration-file.md#cache-sync-interval-从-v900-版本开始引入) | 新增 | 控制 TiKV 更新本地 PD TSO 缓存的时间间隔。默认值为 `"15s"`。 | | TiKV | [`storage.max-ts.max-drift`](/tikv-configuration-file.md#max-drift-从-v900-版本开始引入) | 新增 | 定义当读写请求使用的 TS 超过 TiKV 缓存的 PD TSO 时,所允许的最长超出时间。默认值为`"60s"`。 | | TiFlash | [`format_version`](/tiflash/tiflash-configuration.md#format_version) | 修改 | 默认值从 `7` 变更为 `8`,代表 v9.0.0 以及以后版本 DTFile 文件的默认格式 `8`。该格式用于支持新的字符串序列化方案,可提升字符串的读写性能。 | | TiCDC | [`newarch`](/ticdc/ticdc-server-config.md#newarch) | 新增 | 控制是否开启 [TiCDC 新架构](/ticdc/ticdc-new-arch.md)。默认值为不设置,表示使用老架构。该配置项仅用于新架构,如果在 TiCDC 老架构的配置文件中添加该配置项,可能会导致解析失败。 | | BR | [`--checkpoint-storage`](br/br-checkpoint-restore.md#实现细节-将断点数据存储在下游集群) | 新增 | 用于指定断点数据存储的外部存储。 | +| DM | [`redact-info-log`](/dm/dm-worker-configuration-file.md#redact-info-log-从-v900-版本开始引入) | 新增 | 控制是否开启 DM 日志脱敏。 | | TiProxy | [`enable-traffic-replay`](/tiproxy/tiproxy-configuration.md#enable-traffic-replay) | 新增 | 用于指定是否开启[流量回放](/tiproxy/tiproxy-traffic-replay.md)功能。如果为 `false`,则在流量捕获和流量回放时会报错。| | TiProxy | [`encryption-key-path`](/tiproxy/tiproxy-configuration.md#encryption-key-path) | 新增 | 用于指定流量捕获时用于加密流量文件的密钥的文件路径。| From b2af12ab0d5a328f18a13b795dc91a02bf641242 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 15 Apr 2025 14:53:07 +0800 Subject: [PATCH 42/83] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-9.0.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index c0ddc9a68f97..0ce9eb12fad8 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -148,11 +148,11 @@ TiDB 版本:9.0.0 * SQL 跨可用区流量观测 [#57543](https://github.com/pingcap/tidb/issues/57543) @[nolouch](https://github.com/nolouch) @[yibin87](https://github.com/yibin87) **tw@Oreoxmt** - 跨可用区 (Availability Zone, AZ) 部署可以增强 TiDB 集群的容灾能力。然而,在云服务环境中,这种部署方式会产生额外的网络流量费用,例如 AWS 对跨区域和跨可用区的流量进行计费。因此,对于运行在云服务上的 TiDB 集群,更精确地监控和分析网络流量对于成本控制至关重要。 + 跨可用区 (Availability Zone, AZ) 部署可以增强 TiDB 集群的容灾能力。然而,在云服务环境中,这种部署方式会产生额外的跨区网络传输成本,例如 AWS 会对跨区域和跨可用区的流量进行计费。因此,对于运行在云服务上的 TiDB 集群,精确地监控和分析网络流量对于成本控制至关重要。 - 从 v9.0.0 开始,TiDB 记录 SQL 处理过程中产生的网络流量,并区分跨可用区的流量。相关数据会写入 [`statements_summary` 表](/statement-summary-tables.md)和[慢查询日志](/identify-slow-queries.md)。该功能有助于用户跟踪 TiDB 集群内部的主要数据传输路径,分析跨可用区流量的来源,从而更好地理解和控制相关成本。 + 从 v9.0.0 开始,TiDB 会记录 SQL 处理过程中产生的网络流量,并区分哪些是跨可用区传输产生的流量。相关数据会写入 [`statements_summary` 表](/statement-summary-tables.md)和[慢查询日志](/identify-slow-queries.md)。该功能有助于用户跟踪 TiDB 集群内部的主要数据传输路径,分析跨可用区流量的来源,从而更好地理解和控制相关成本。 - 需要注意的是,当前版本仅监测 SQL 查询在**集群内部**(TiDB、TiKV 和 TiFlash)之间的网络传输,不包括 DML 和 DDL。另外,记录的流量数据为解包后的流量,与实际物理流量存在差异,因此不能直接作为网络计费的依据。 + 需要注意的是,当前版本仅监测 SQL 查询在**集群内部**(TiDB、TiKV 和 TiFlash)之间的网络流量,不包括 DML 和 DDL 操作产生的流量。另外,记录的流量数据为解包后的流量,与实际物理流量存在差异,因此不能直接作为网络计费的依据。 更多信息,请参考[用户文档](/statement-summary-tables.md#statements_summary-字段介绍)。 @@ -168,7 +168,7 @@ TiDB 版本:9.0.0 ### 数据迁移 -* 支持 DM 日志查询参数脱敏 [#11489](https://github.com/pingcap/tiflow/issues/11489) @[db-will](https://github.com/db-will) **tw@Oreoxmt** +* 支持对 Data Migration (DM) 日志中的查询参数进行脱敏 [#11489](https://github.com/pingcap/tiflow/issues/11489) @[db-will](https://github.com/db-will) **tw@Oreoxmt** 从 v9.0.0 开始,你可以通过 `redact-info-log` 配置项控制是否启用 DM 日志脱敏功能。启用后,DM 日志中包含敏感数据的查询参数将被替换为 `?` 占位符。如需开启该功能,你可以在 DM-worker 配置文件中设置 `redact-info-log` 为 `true`,或在启动 DM 时传入参数 `--redact-info-log=true`。该功能仅对查询参数进行脱敏,不会脱敏整个 SQL 语句,并且需要重启 DM-worker 才能生效。 @@ -176,11 +176,11 @@ TiDB 版本:9.0.0 * TiDB Lightning 与 TiDB `sql_require_primary_key=ON` 兼容 [#57479](https://github.com/pingcap/tidb/issues/57479) @[lance6716](https://github.com/lance6716) **tw@Oreoxmt** - 当你在 TiDB 中启用系统变量 [`sql_require_primary_key`](/system-variables.md#sql_require_primary_key-从-v630-版本开始引入) 后,表必须包含主键。为避免表创建失败,TiDB Lightning 为其内部的错误日志表和冲突检测表(`conflict_error_v4`、`type_error_v2` 和 `conflict_records_v2`)添加了默认主键。如果你的自动化脚本使用了这些内部表,请更新脚本以适配包含主键的新表结构。 + 当在 TiDB 中启用系统变量 [`sql_require_primary_key`](/system-variables.md#sql_require_primary_key-从-v630-版本开始引入) 后,表必须包含主键。为避免表创建失败,TiDB Lightning 为其内部的错误日志表和冲突检测表(`conflict_error_v4`、`type_error_v2` 和 `conflict_records_v2`)添加了默认主键。如果你的自动化脚本使用了这些内部表,请更新脚本以适配包含主键的新表结构。 * 将 sync-diff-inspector 从 `pingcap/tidb-tools` 迁移至 `pingcap/tiflow` 代码仓库 [#11672](https://github.com/pingcap/tiflow/issues/11672) @[joechenrh](https://github.com/joechenrh) **tw@Oreoxmt** - 从 v9.0.0 开始,sync-diff-inspector 工具从 [`pingcap/tidb-tools`](https://github.com/pingcap/tidb-tools) GitHub 代码仓库迁移至 [`pingcap/tiflow`](https://github.com/pingcap/tiflow)。该变更将数据同步和迁移工具([DM](/dm/dm-overview.md)、[TiCDC](/ticdc/ticdc-overview.md) 和 sync-diff-inspector)统一到同一个代码仓库中。 + 从 v9.0.0 开始,sync-diff-inspector 工具从 GitHub 代码仓库 [`pingcap/tidb-tools`](https://github.com/pingcap/tidb-tools) 迁移至 [`pingcap/tiflow`](https://github.com/pingcap/tiflow)。通过该变更,`sync-diff-inspector` 现在与 [DM](/dm/dm-overview.md) 和 [TiCDC](/ticdc/ticdc-overview.md) 一起在同一个代码仓库中维护,实现了这些数据同步和迁移工具的统一管理。 对于 TiDB v9.0.0 及之后版本,你可以使用以下方法之一安装 sync-diff-inspector: From 83eb3e95834ae9c544694ecc3740dca363a51009 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 15 Apr 2025 14:53:46 +0800 Subject: [PATCH 43/83] 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 0ce9eb12fad8..920425cda6df 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -106,7 +106,7 @@ TiDB 版本:9.0.0 * TiDB 索引推荐 (Index Advisor) [#12303](https://github.com/pingcap/tidb/issues/12303) @[qw4990](https://github.com/qw4990) **tw@Oreoxmt** - 索引设计在数据库性能优化中至关重要。从 v8.5.0 开始,TiDB 引入索引推荐 (Index Advisor) 功能,并持续进行改进和增强。该功能可以分析高频查询模式,推荐最优索引策略,帮助你更高效地进行性能调优,并降低使用门槛。 + 索引设计在数据库性能优化中至关重要。从 v8.5.0 开始,TiDB 引入索引推荐 (Index Advisor) 功能,并持续进行改进和增强。该功能可以分析高频查询模式,推荐最优索引策略,帮助你更高效地进行性能调优,并降低索引设计的门槛。 你可以使用 [`RECOMMEND INDEX`](/index-advisor.md#使用-recommend-index-语句推荐索引) SQL 语句为某条 SQL 语句生成索引推荐,或自动分析历史负载中的高频 SQL 语句,实现批量推荐。推荐结果存储在 `mysql.index_advisor_results` 表中,你可以查询此表以查看推荐的索引。 From b59ad8fb71c5f24dcc62300ae1436fa485a005c4 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 16 Apr 2025 14:23:48 +0800 Subject: [PATCH 44/83] commit changes in https://github.com/pingcap/docs-cn/pull/20035#discussion_r2015520047 --- releases/release-9.0.0.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 920425cda6df..ea4985a017fe 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -71,11 +71,14 @@ TiDB 版本:9.0.0 * TiFlash 支持新的存储格式以提升字符串类型扫描效率 [#9673](https://github.com/pingcap/tiflash/issues/9673) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** - 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,因此对于长度较小的字符串数据,扫描效率不高。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对长度小于 64 字节的字符串数据的存储进行了优化,提升了扫描效率,且不会影响其他数据的存储和扫描性能。如需启用新的存储格式,你可以在 TiFlash 配置文件中将 `format_version` 设置为 8。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 + 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,因此对于长度较小的字符串数据,扫描效率不高。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对字符串格式数据的存储进行了优化,提升了长度小于 64 字节的字符串数据扫描效率,且不会影响其他数据的存储和扫描性能。 - 建议用户在升级前阅读 [TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 - - 更多信息,请参考[用户文档](/tiflash/tiflash-configuration.md#配置文件-tiflashtoml)。 + - 对于新建的 v9.0.0 或之后版本的 TiDB 集群,TiFlash 默认会采用新的存储格式。 + - 对于升级到 v9.0.0 或之后版本的 TiDB 集群,建议用户在升级前阅读 [TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 + - 如果升级前未指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 TiFlash 默认采用新的存储格式。 + - 如果升级前指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 `format_version` 的值保持不变, TiFlash 会继续使用 `format_version` 指定的存储格式。此时如需启用新的存储格式,请在 TiFlash 配置文件中将 `format_version` 设置为 `8`。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 + + 更多信息,请参考[用户文档](/tiflash/tiflash-configuration.md#format_version)。 ### 高可用 From d4f3297429cfb6af46c26c72ab8c24af24f6e2c1 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 16 Apr 2025 16:41:25 +0800 Subject: [PATCH 45/83] Update format and wording --- 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 ea4985a017fe..8ba0fd8d1db8 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -125,7 +125,7 @@ TiDB 版本:9.0.0 * **自动化运维:** 数据库自治是提升用户体验并降低使用门槛的必然趋势,而实现数据库自动调优需要历史数据作为支撑。基于持久化的历史工作负载数据,TiDB 可以逐步向自动化运维迈进,例如:索引推荐(Index Advisor)、统计信息推荐(Statistics Advisor)、SQL 绑定推荐(SQL Binding Advisor)等。 - 在 v9.0.0 中,通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest) 启用 `Workload Repository`,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。被持久化的内存表分为两类: + 在 v9.0.0 中,通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest) 启用 `Workload Repository`,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。被持久化的内存表分为以下两类: * **存储累计指标的内存表**体积较大,快照和存储成本比较高,这些表会依据 [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) 的设置做批量快照,最小间隔 15 分钟。通过比较任意两个快照间指标的变化,得出这一段时间各个指标的增量。包括以下内存表: From 002ddcaabfde4c51ff71e8d555595d0b73674be2 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 17 Apr 2025 14:52:36 +0800 Subject: [PATCH 46/83] Update a doc link --- 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 8ba0fd8d1db8..df74a3e46d2b 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -147,7 +147,7 @@ TiDB 版本:9.0.0 通过持久化数据库的历史工作负载,TiDB 可以更好地进行故障排查和优化推荐,并在未来推出一系列围绕历史负载的自动化工具,提升数据库运维和诊断的用户体验。 - 更多信息,请参考[用户文档](/workloadrepo.md)。 + 更多信息,请参考[用户文档](/workload-repository.md)。 * SQL 跨可用区流量观测 [#57543](https://github.com/pingcap/tidb/issues/57543) @[nolouch](https://github.com/nolouch) @[yibin87](https://github.com/yibin87) **tw@Oreoxmt** From c70d06fd2c433ad105823c0759db24bc43358d2d Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 21 Apr 2025 10:31:07 +0800 Subject: [PATCH 47/83] Update format to remove extra spaces --- releases/release-9.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index df74a3e46d2b..876bab4fc8bf 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -121,9 +121,9 @@ TiDB 版本:9.0.0 很多高频更新的负载指标和状态信息被维护在实例的内存中,这些历史负载数据可以作为数据库的一部分持久化下来。主要用于以下目的: - * **故障诊断:** 在对过往问题的诊断过程中,需要回顾历史活动和事件。持久化的负载数据可以帮助用户复盘过去某个时间段内的状态信息变化,找出异常点;或者精确定位某个数据库会话或 SQL 语句在特定时刻的具体行为。 + * **故障诊断**:在对过往问题的诊断过程中,需要回顾历史活动和事件。持久化的负载数据可以帮助用户复盘过去某个时间段内的状态信息变化,找出异常点;或者精确定位某个数据库会话或 SQL 语句在特定时刻的具体行为。 - * **自动化运维:** 数据库自治是提升用户体验并降低使用门槛的必然趋势,而实现数据库自动调优需要历史数据作为支撑。基于持久化的历史工作负载数据,TiDB 可以逐步向自动化运维迈进,例如:索引推荐(Index Advisor)、统计信息推荐(Statistics Advisor)、SQL 绑定推荐(SQL Binding Advisor)等。 + * **自动化运维**:数据库自治是提升用户体验并降低使用门槛的必然趋势,而实现数据库自动调优需要历史数据作为支撑。基于持久化的历史工作负载数据,TiDB 可以逐步向自动化运维迈进,例如:索引推荐(Index Advisor)、统计信息推荐(Statistics Advisor)、SQL 绑定推荐(SQL Binding Advisor)等。 在 v9.0.0 中,通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest) 启用 `Workload Repository`,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。被持久化的内存表分为以下两类: From 497c517582ba07ad1fd9ad7e56727cc57eeb7efd Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 21 Apr 2025 13:31:10 +0800 Subject: [PATCH 48/83] Update releases/release-9.0.0.md --- 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 876bab4fc8bf..b2a94e5f36ba 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -218,10 +218,10 @@ TiDB 版本:9.0.0 | [`mpp_version`](/system-variables.md#mpp_version-从-v660-版本开始引入) | 修改 | 该变量新增可选值 `3`,用于开启 TiFlash 新的字符串数据交换格式。当该变量的值未指定时,TiDB 将自动选择 MPP 执行计划的最新版本 `3`,以提高字符串的序列化和反序列化效率,从而提升查询性能。 | | [`pd_enable_follower_handle_region`](/system-variables.md#pd_enable_follower_handle_region-从-v760-版本开始引入) | 修改 | 默认值从 `OFF` 变更为 `ON`。当该值为 `ON` 时,TiDB 在获取 Region 信息时会将请求均匀地发送到所有 PD 节点上,因此 PD follower 也可以处理 Region 信息请求,从而减轻 PD leader 的 CPU 压力。从 v9.0.0 开始,当该变量值为 `ON` 时,TiDB Lightning 的 Region 信息请求也会被均匀发送到所有 PD 节点。 | | [`tidb_pipelined_dml_resource_policy`](/system-variables.md#tidb_pipelined_dml_resource_policy-从-v900-版本开始引入) | 新增 | 该变量控制 [Pipelined DML](/pipelined-dml.md) 的资源使用策略,仅在 [`tidb_dml_type`](#tidb_dml_type-从-v800-版本开始引入) 为 `bulk` 时生效。| -| [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest)| 新增 | 这变量用户设置 [Workload Repository](/workloadrepo.md) 的写入目标。 默认为空,不启用。 设置为 `table` 写入 TiKV 。| -| [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 统一快照的时间间隔。 | -| [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 快速时间快照的间隔。 | -| [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days) | 新增 | 设置 [Workload Repository](/workloadrepo.md) 中数据保存的天数。 | +| [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest)| 新增 | 这变量用户设置 [Workload Repository](/workload-repository.md) 的写入目标。默认为空,不启用。 设置为 `table` 写入 TiKV 。| +| [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) | 新增 | 设置 [Workload Repository](/workload-repository.md) 统一快照的时间间隔。 | +| [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval) | 新增 | 设置 [Workload Repository](/workload-repository.md) 快速时间快照的间隔。 | +| [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days) | 新增 | 设置 [Workload Repository](/workload-repository.md) 中数据保存的天数。 | | | | | ### 配置参数 From 6f96f6dddb0f85d58281b6f7e5e768d3654d0ec1 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 23 Apr 2025 14:01:32 +0800 Subject: [PATCH 49/83] Apply suggestions from code review Co-authored-by: Aolin --- 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 b2a94e5f36ba..8fcfe39d9189 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -71,12 +71,12 @@ TiDB 版本:9.0.0 * TiFlash 支持新的存储格式以提升字符串类型扫描效率 [#9673](https://github.com/pingcap/tiflash/issues/9673) @[JinheLin](https://github.com/JinheLin) **tw@qiancai** - 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,因此对于长度较小的字符串数据,扫描效率不高。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对字符串格式数据的存储进行了优化,提升了长度小于 64 字节的字符串数据扫描效率,且不会影响其他数据的存储和扫描性能。 + 在 v9.0.0 版本之前,TiFlash 存储字符串类型数据的格式在扫描时需要逐行读取,导致短字符串的扫描效率较低。在 v9.0.0 中,TiFlash 引入了新的存储格式,针对字符串格式数据的存储进行了优化,提升了长度小于 64 字节的字符串数据的扫描效率,且不会影响其他数据的存储和扫描性能。 - 对于新建的 v9.0.0 或之后版本的 TiDB 集群,TiFlash 默认会采用新的存储格式。 - 对于升级到 v9.0.0 或之后版本的 TiDB 集群,建议用户在升级前阅读 [TiFlash 升级帮助](/tiflash-upgrade-guide.md)。 - - 如果升级前未指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 TiFlash 默认采用新的存储格式。 - - 如果升级前指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 `format_version` 的值保持不变, TiFlash 会继续使用 `format_version` 指定的存储格式。此时如需启用新的存储格式,请在 TiFlash 配置文件中将 `format_version` 设置为 `8`。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 + - 如果升级前未指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 TiFlash 默认采用新的存储格式。 + - 如果升级前指定过 [`format_version`](/tiflash/tiflash-configuration.md#format_version),升级后 `format_version` 的值保持不变,TiFlash 会继续使用 `format_version` 指定的存储格式。此时如需启用新的存储格式,请在 TiFlash 配置文件中将 `format_version` 设置为 `8`。配置生效后,新写入 TiFlash 的数据将采用新的存储格式,而现有数据的存储格式则不受影响。 更多信息,请参考[用户文档](/tiflash/tiflash-configuration.md#format_version)。 @@ -101,7 +101,7 @@ TiDB 版本:9.0.0 * 支持对分区表的非唯一列创建全局索引 [#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 版本起,TiDB 取消了这一限制,允许用户在分区表的非唯一列上创建全局索引,提升了全局索引的易用性。 + 从 v8.3.0 开始,TiDB 支持用户在分区表的唯一列上创建全局索引以提高查询性能,但不支持在非唯一列上创建全局索引。从 v9.0.0 起,TiDB 取消了这一限制,允许用户在分区表的非唯一列上创建全局索引,提升了全局索引的易用性。 更多信息,请参考[全局索引](/partitioned-table.md#全局索引)。 From dee7080d4b1bd91da04956ce254d85820e0559d3 Mon Sep 17 00:00:00 2001 From: Test User Date: Mon, 12 May 2025 18:10:03 +0800 Subject: [PATCH 50/83] add two ticdc features --- releases/release-9.0.0.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 8fcfe39d9189..5c1172a7385a 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -171,6 +171,20 @@ TiDB 版本:9.0.0 ### 数据迁移 +* TiCDC 引入新架构,以提高实时数据复制的性能、可扩展性和稳定性 (实验特性) [#442](https://github.com/pingcap/ticdc/issues/442) @[CharlesCheung96](https://github.com/CharlesCheung96) **tw@qiancai** + + 在 v9.0.0 中,TiCDC 引入了新架构(实验特性),显著提升了实时数据复制的性能、可扩展性与稳定性,同时降低了资源成本。新架构重新设计了 TiCDC 的核心组件并优化了数据处理流程。 + + 在新架构下,TiCDC 同步能力接近线性扩展,实现以更低的资源成本完成百万级表的同步任务。在高流量、频繁 DDL 操作及集群扩缩容等场景下,Changefeed 的延迟更低且更加稳定。 + + 更多信息,请参考[用户文档](/ticdc/ticdc-new-arch.md)。 + +* TiCDC 新增安全机制,避免将数据同步回同一个 TiDB 集群 [#12062](https://github.com/pingcap/tiflow/issues/12062) @[wlwilliamx](https://github.com/wlwilliamx) **tw@qiancai** + + TiCDC 支持从上游的一个 TiDB 集群同步数据到下游的多个其他系统,包括其他 TiDB 集群。在 v9.0.0 之前,如果在 TiCDC 配置中误将同一个 TiDB 集群同时配置为数据源集群和目标集群,可能会导致数据同步循环,从而引发数据一致性问题。从 v9.0.0 开始,TiCDC 会自动检查源和目标 TiDB 集群是否相同,从而避免这种配置错误。 + + 更多信息,请参考[用户文档](/ticdc/ticdc-manage-changefeed.md#安全机制)。 + * 支持对 Data Migration (DM) 日志中的查询参数进行脱敏 [#11489](https://github.com/pingcap/tiflow/issues/11489) @[db-will](https://github.com/db-will) **tw@Oreoxmt** 从 v9.0.0 开始,你可以通过 `redact-info-log` 配置项控制是否启用 DM 日志脱敏功能。启用后,DM 日志中包含敏感数据的查询参数将被替换为 `?` 占位符。如需开启该功能,你可以在 DM-worker 配置文件中设置 `redact-info-log` 为 `true`,或在启动 DM 时传入参数 `--redact-info-log=true`。该功能仅对查询参数进行脱敏,不会脱敏整个 SQL 语句,并且需要重启 DM-worker 才能生效。 From b3fa93bc291710e92f09fd76e3bcc056eba33a6b Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 13 May 2025 11:23:00 +0800 Subject: [PATCH 51/83] update the feature description for TiCDC new architecture --- releases/release-9.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 5c1172a7385a..94edef0f569c 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -171,11 +171,11 @@ TiDB 版本:9.0.0 ### 数据迁移 -* TiCDC 引入新架构,以提高实时数据复制的性能、可扩展性和稳定性 (实验特性) [#442](https://github.com/pingcap/ticdc/issues/442) @[CharlesCheung96](https://github.com/CharlesCheung96) **tw@qiancai** +* TiCDC 引入新架构,显著提升性能、可扩展性和稳定性 (实验特性) [#442](https://github.com/pingcap/ticdc/issues/442) @[CharlesCheung96](https://github.com/CharlesCheung96) **tw@qiancai** 在 v9.0.0 中,TiCDC 引入了新架构(实验特性),显著提升了实时数据复制的性能、可扩展性与稳定性,同时降低了资源成本。新架构重新设计了 TiCDC 的核心组件并优化了数据处理流程。 - 在新架构下,TiCDC 同步能力接近线性扩展,实现以更低的资源成本完成百万级表的同步任务。在高流量、频繁 DDL 操作及集群扩缩容等场景下,Changefeed 的延迟更低且更加稳定。 + 在新架构下,TiCDC 同步能力接近线性扩展,并能以更低的资源成本完成百万级表的同步任务。在高流量、频繁 DDL 操作及集群扩缩容等场景下,Changefeed 的延迟更低且更加稳定。 更多信息,请参考[用户文档](/ticdc/ticdc-new-arch.md)。 From f453b447f9d5bd45b035c03285ff960746a291aa Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 13 May 2025 15:17:19 +0800 Subject: [PATCH 52/83] Update releases/release-9.0.0.md Co-authored-by: Aolin --- releases/release-9.0.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 94edef0f569c..24819254ef08 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -53,11 +53,11 @@ TiDB 版本:9.0.0 * 新增支持下推包含以下聚合函数的窗口函数到 TiFlash [#7376](https://github.com/pingcap/tiflash/issues/7376) @[xzhangxian1008](https://github.com/xzhangxian1008) **tw@qiancai** - * `MAX` - * `MIN` - * `COUNT` - * `SUM` - * `AVG` + * `MAX()` + * `MIN()` + * `COUNT()` + * `SUM()` + * `AVG()` 更多信息,请参考[用户文档](/tiflash/tiflash-supported-pushdown-calculations.md)。 From e81b3ec70df271ed0b1b06cc6f2d4d00053a7629 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 13 May 2025 15:37:02 +0800 Subject: [PATCH 53/83] Apply suggestions from code review --- releases/release-9.0.0.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 24819254ef08..60deceb01392 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -11,7 +11,7 @@ summary: 了解 TiDB 9.0.0 版本的新功能、兼容性变更、改进提升 TiDB 版本:9.0.0 -试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/v8.5/quick-start-with-tidb) | [生产部署](https://docs.pingcap.com/zh/tidb/v9.0/production-deployment-using-tiup) | [下载离线包](https://cn.pingcap.com/product-community/?version=v9.0.0#version-list) +试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/v9.0/quick-start-with-tidb) | [生产部署](https://docs.pingcap.com/zh/tidb/v9.0/production-deployment-using-tiup) | [下载离线包](https://cn.pingcap.com/product-community/?version=v9.0.0#version-list) 在 9.0.0 版本中,你可以获得以下关键特性: @@ -34,6 +34,18 @@ TiDB 版本:9.0.0 ### 可扩展性 +* PD 支持的微服务模式成为正式功能 (GA) [#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) tw@hfxsd + + 从 v9.0.0 开始,PD 支持的微服务模式成为正式功能。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而实现 PD 的性能扩展,解决大规模集群下 PD 的性能瓶颈问题。 + + - `tso` 微服务:为整个集群提供单调递增的时间戳分配。 + - `scheduling` 微服务:为整个集群提供调度功能,包括但不限于负载均衡、热点处理、副本修复、副本放置等。 + + 每个微服务都以独立进程的方式部署。当设置某个微服务的副本数大于 1 时,该微服务会自动实现主备的容灾模式,以确保服务的高可用性和可靠性。 + + 目前 PD 微服务仅支持通过 TiDB Operator 进行部署。当 PD 出现明显的性能瓶颈且无法升级配置的情况下,建议考虑使用该模式。 + + 更多信息,请参考[用户文档](/pd-microservices.md)。 ### 性能 From fbfadddd9e3a1aac3777cb5a3b107caf97afc49e Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 13 May 2025 15:44:44 +0800 Subject: [PATCH 54/83] 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 60deceb01392..fac42179076c 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -183,7 +183,7 @@ TiDB 版本:9.0.0 ### 数据迁移 -* TiCDC 引入新架构,显著提升性能、可扩展性和稳定性 (实验特性) [#442](https://github.com/pingcap/ticdc/issues/442) @[CharlesCheung96](https://github.com/CharlesCheung96) **tw@qiancai** +* TiCDC 引入新架构,显著提升性能、可扩展性和稳定性(实验特性)[#442](https://github.com/pingcap/ticdc/issues/442) @[CharlesCheung96](https://github.com/CharlesCheung96) **tw@qiancai** 在 v9.0.0 中,TiCDC 引入了新架构(实验特性),显著提升了实时数据复制的性能、可扩展性与稳定性,同时降低了资源成本。新架构重新设计了 TiCDC 的核心组件并优化了数据处理流程。 From f20b179856110617b12a99f9ca3e6ad9a3c985d0 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 13 May 2025 16:22:30 +0800 Subject: [PATCH 55/83] 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 fac42179076c..c6dae4d1fd3f 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -36,7 +36,7 @@ TiDB 版本:9.0.0 * PD 支持的微服务模式成为正式功能 (GA) [#5766](https://github.com/tikv/pd/issues/5766) @[binshi-bing](https://github.com/binshi-bing) tw@hfxsd - 从 v9.0.0 开始,PD 支持的微服务模式成为正式功能。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而实现 PD 的性能扩展,解决大规模集群下 PD 的性能瓶颈问题。 + 在 v8.0.0,PD 支持的微服务模式作为实验特性发布。从 v9.0.0 开始,该特性成为正式功能。该模式可将 PD 的时间戳分配和集群调度功能拆分为以下微服务单独部署,从而实现 PD 的性能扩展,解决大规模集群下 PD 的性能瓶颈问题。 - `tso` 微服务:为整个集群提供单调递增的时间戳分配。 - `scheduling` 微服务:为整个集群提供调度功能,包括但不限于负载均衡、热点处理、副本修复、副本放置等。 From 03b9af2be86e7a93a594faa56f8b7565ae41c467 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Tue, 13 May 2025 23:40:21 +0800 Subject: [PATCH 56/83] include highlights --- releases/release-9.0.0.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index c6dae4d1fd3f..f4ec996c7b7f 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -25,7 +25,27 @@ TiDB 版本:9.0.0 - + 可扩展性与性能 + PD 支持的微服务模式成为正式功能(从 v8.0.0 开始引入) + PD 微服务模式通过将 PD 的不同功能模块解耦为独立服务,提升了系统的可扩展性、稳定性和部署灵活性,为大规模集群部署提供了更好的架构基础。 + + + 稳定性与高可用 + TiProxy 流量捕捉与回放成为正式功能(从 v8.4.0 开始引入) + 在进行集群升级、迁移或部署变更等重要操作之前,使用 TiProxy 捕获 TiDB 生产集群的真实负载,并在测试的目标集群中重现该工作负载,从而验证性能,确保变更成功。 + + + 数据库管理与可观测性 + TiDB Workload Repository + 将数据库运行时的历史状态持久化,能够显著提升历史故障和性能问题的诊断效率,帮助用户快速定位并优化问题,同时为健康检查和自动调优提供关键的数据基础。 + + + TiDB 索引推荐 + 数据库自动索引推荐通过分析实际查询负载,智能识别缺失或冗余的索引,帮助用户在无需深入理解业务的情况下完成索引优化。它不仅显著降低了人工分析和调优成本,还提升了系统整体的查询性能与稳定性。 + + + SQL 跨可用区流量观测 + 跨可用区流量观测帮助用户识别 TiDB 集群内部 SQL 查询过程中产生的跨区网络传输,从而分析流量来源、优化部署架构、控制云上跨区通信成本,是提升成本可见性和资源使用效率的重要手段。 From 2ac7feaefab5756d763bdb1e9f2aaaae7a5acbb2 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Wed, 14 May 2025 15:20:26 +0800 Subject: [PATCH 57/83] combine key features --- releases/release-9.0.0.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index f4ec996c7b7f..57a907e00c5a 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -25,9 +25,17 @@ TiDB 版本:9.0.0 - 可扩展性与性能 + 可扩展性与性能 PD 支持的微服务模式成为正式功能(从 v8.0.0 开始引入) PD 微服务模式通过将 PD 的不同功能模块解耦为独立服务,提升了系统的可扩展性、稳定性和部署灵活性,为大规模集群部署提供了更好的架构基础。 + + + Disaggregation of PD to improve scalability (General Availability) + The Placement Driver (PD) provides multiple critical modules to ensure the normal operation of TiDB clusters. Now Generally Available in v9.0.0, PD's Microservices mode supports deploying the TSO and scheduling modules as independent microservices. This can significantly reduce resource conflicts for these services as the cluster scales. With this architecture, much larger clusters with much larger workloads are now possible. + + + Point-In-Time-Recovery (PITR) Now Supports Recovery from Compacted Log Backups for Faster Restores + Starting from v9.0.0, the log backup feature provides offline compaction capabilities, converting unstructured log backup data into structured SST files. These SST files can now recovered into the cluster much more quickly than reapplying the original logs, delivering improved recovery performance. 稳定性与高可用 @@ -47,6 +55,19 @@ TiDB 版本:9.0.0 SQL 跨可用区流量观测 跨可用区流量观测帮助用户识别 TiDB 集群内部 SQL 查询过程中产生的跨区网络传输,从而分析流量来源、优化部署架构、控制云上跨区通信成本,是提升成本可见性和资源使用效率的重要手段。 + + Data Migration + Support query argument redaction in DM logs + Introduces an optional redact-info-log parameter to mask query arguments in DM logs, preventing sensitive data from appearing in logs. + + + Ensure Lightning compatibility with TiDB sql_require_primary_key=ON + Ensures the internal error-logging tables have primary keys if sql_require_primary_key=ON is enabled in TiDB, avoiding creation failures during data imports. + + + Migrated sync-diff-inspector from tidb-tools to tiflow repository + Consolidates sync-diff-inspector with other data migration and replication tools (DM and TiCDC) in the tiflow repository. Now available via TiUP and a dedicated Docker image. + From 7074f4f921eb3e058c4728e85bab929a18124960 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Wed, 14 May 2025 15:38:26 +0800 Subject: [PATCH 58/83] Update 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 57a907e00c5a..f3cf8c09a3cb 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -56,7 +56,7 @@ TiDB 版本:9.0.0 跨可用区流量观测帮助用户识别 TiDB 集群内部 SQL 查询过程中产生的跨区网络传输,从而分析流量来源、优化部署架构、控制云上跨区通信成本,是提升成本可见性和资源使用效率的重要手段。 - Data Migration + 数据迁移 Support query argument redaction in DM logs Introduces an optional redact-info-log parameter to mask query arguments in DM logs, preventing sensitive data from appearing in logs. From 3ca465a69c322b292f63a0c08e72cdd16ae200d8 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Wed, 14 May 2025 16:00:51 +0800 Subject: [PATCH 59/83] Apply suggestions from code review --- 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 f3cf8c09a3cb..81a5a6db5fcf 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -26,7 +26,7 @@ TiDB 版本:9.0.0 可扩展性与性能 - PD 支持的微服务模式成为正式功能(从 v8.0.0 开始引入) + PD 支持的[微服务模式](/pd-microservices.md)成为正式功能(从 v8.0.0 开始引入) PD 微服务模式通过将 PD 的不同功能模块解耦为独立服务,提升了系统的可扩展性、稳定性和部署灵活性,为大规模集群部署提供了更好的架构基础。 @@ -39,13 +39,13 @@ TiDB 版本:9.0.0 稳定性与高可用 - TiProxy 流量捕捉与回放成为正式功能(从 v8.4.0 开始引入) + [TiProxy 流量回放](/tiproxy/tiproxy-traffic-replay.md)成为正式功能(从 v8.4.0 开始引入) 在进行集群升级、迁移或部署变更等重要操作之前,使用 TiProxy 捕获 TiDB 生产集群的真实负载,并在测试的目标集群中重现该工作负载,从而验证性能,确保变更成功。 数据库管理与可观测性 - TiDB Workload Repository - 将数据库运行时的历史状态持久化,能够显著提升历史故障和性能问题的诊断效率,帮助用户快速定位并优化问题,同时为健康检查和自动调优提供关键的数据基础。 + [TiDB Workload Repository](/workload-repository.md) + TiDB Workload Repository 可以将数据库运行时的历史状态持久化,能够显著提升历史故障和性能问题的诊断效率,帮助你快速定位并优化问题,同时为健康检查和自动调优提供关键的数据基础。 TiDB 索引推荐 From 9f4637b0a667b6fdd8b1ceff29e3fbd91c4acecc Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 14 May 2025 17:15:56 +0800 Subject: [PATCH 60/83] Add compact log backup --- 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 81a5a6db5fcf..94a03d41da09 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -133,6 +133,16 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/tiflash/tiflash-configuration.md#format_version)。 +* 按时间点恢复 (Point-in-time recovery, PITR) 支持从压缩后的日志备份中恢复,以加快恢复速度 [#56522](https://github.com/pingcap/tidb/issues/56522) @[YuJuncen](https://github.com/YuJuncen) **tw@lilin90** + + Starting from v9.0.0, the compact log backup feature provides offline compaction capabilities, converting unstructured log backup data into structured SST files. This results in the following improvements:从 v9.0.0 开始,压缩日志备份功能提供了离线压缩能力,将非结构化的日志备份数据转换为结构化的 SST 文件,从而实现以下改进: + + - SST 可以被快速导入集群,从而**提升恢复性能**。 + - 压缩过程中消除重复记录,从而**减少空间消耗**。 + - 在确保 RTO (Recovery Time Objective) 的前提下,你可以设置更长的全量备份间隔,从而**降低对业务的影响**。 + + 更多信息,请参考[用户文档](/br/br-compact-log-backup.md)。 + ### 高可用 * TiProxy 支持流量回放功能正式发布 (GA) [#642](https://github.com/pingcap/tiproxy/issues/642) @[djshow832](https://github.com/djshow832) **tw@hfxsd** From 37213c9a95cc0ac486521fbcd641d8c1a49bebc5 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 14 May 2025 17:17:10 +0800 Subject: [PATCH 61/83] Update compact log backup --- 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 94a03d41da09..b348d55e65ff 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -135,7 +135,7 @@ TiDB 版本:9.0.0 * 按时间点恢复 (Point-in-time recovery, PITR) 支持从压缩后的日志备份中恢复,以加快恢复速度 [#56522](https://github.com/pingcap/tidb/issues/56522) @[YuJuncen](https://github.com/YuJuncen) **tw@lilin90** - Starting from v9.0.0, the compact log backup feature provides offline compaction capabilities, converting unstructured log backup data into structured SST files. This results in the following improvements:从 v9.0.0 开始,压缩日志备份功能提供了离线压缩能力,将非结构化的日志备份数据转换为结构化的 SST 文件,从而实现以下改进: + 从 v9.0.0 开始,压缩日志备份功能提供了离线压缩能力,将非结构化的日志备份数据转换为结构化的 SST 文件,从而实现以下改进: - SST 可以被快速导入集群,从而**提升恢复性能**。 - 压缩过程中消除重复记录,从而**减少空间消耗**。 From b25cef074b848684b5f48f90a5805c8bd451a65a Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Wed, 14 May 2025 18:16:58 +0800 Subject: [PATCH 62/83] Add compatibility between ongoing log backup and snapshot restore --- releases/release-9.0.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index b348d55e65ff..d441e8bbbc7b 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -178,6 +178,12 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/index-advisor.md)。 +* 提升进行中的日志备份与快照恢复的兼容性 [#58685](https://github.com/pingcap/tidb/issues/58685) @[BornChanger](https://github.com/BornChanger) **tw@lilin90** + + 从 v9.0.0 开始,当日志备份任务正在运行时,在满足特定条件的情况下,仍然可以执行快照恢复,并且恢复的数据可以被进行中的日志备份正常记录。这样,日志备份可以持续进行,无需在恢复数据期间中断。 + + 更多信息,请参考[用户文档](/br/br-pitr-manual.md#进行中的日志备份与快照恢复的兼容性)。 + ### 可观测性 * TiDB Workload Repository [#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** From e6bcdafaf07c6e30ed98fcd29d5d4b56076d5ab0 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 15 May 2025 11:13:29 +0800 Subject: [PATCH 63/83] Apply suggestions from code review --- releases/release-9.0.0.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index d441e8bbbc7b..465ca6609430 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -25,13 +25,9 @@ TiDB 版本:9.0.0 - 可扩展性与性能 + 可扩展性与性能 PD 支持的[微服务模式](/pd-microservices.md)成为正式功能(从 v8.0.0 开始引入) PD 微服务模式通过将 PD 的不同功能模块解耦为独立服务,提升了系统的可扩展性、稳定性和部署灵活性,为大规模集群部署提供了更好的架构基础。 - - - Disaggregation of PD to improve scalability (General Availability) - The Placement Driver (PD) provides multiple critical modules to ensure the normal operation of TiDB clusters. Now Generally Available in v9.0.0, PD's Microservices mode supports deploying the TSO and scheduling modules as independent microservices. This can significantly reduce resource conflicts for these services as the cluster scales. With this architecture, much larger clusters with much larger workloads are now possible. Point-In-Time-Recovery (PITR) Now Supports Recovery from Compacted Log Backups for Faster Restores From d13070d004926dbc4aa4519fceb3b1c30cf3a6d9 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 15 May 2025 14:38:40 +0800 Subject: [PATCH 64/83] update highlights --- 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 465ca6609430..10b7613c74e5 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -44,25 +44,25 @@ TiDB 版本:9.0.0 TiDB Workload Repository 可以将数据库运行时的历史状态持久化,能够显著提升历史故障和性能问题的诊断效率,帮助你快速定位并优化问题,同时为健康检查和自动调优提供关键的数据基础。 - TiDB 索引推荐 - 数据库自动索引推荐通过分析实际查询负载,智能识别缺失或冗余的索引,帮助用户在无需深入理解业务的情况下完成索引优化。它不仅显著降低了人工分析和调优成本,还提升了系统整体的查询性能与稳定性。 + TiDB 索引推荐 (Index Advisor) tw@Oreoxmt + TiDB 索引推荐 (Index Advisor) 通过分析实际查询负载,智能识别缺失或冗余的索引,帮助你在无需深入了解业务的情况下完成索引优化。该功能可降低手动分析和调优的成本,并提升查询性能和系统稳定性。 - SQL 跨可用区流量观测 - 跨可用区流量观测帮助用户识别 TiDB 集群内部 SQL 查询过程中产生的跨区网络传输,从而分析流量来源、优化部署架构、控制云上跨区通信成本,是提升成本可见性和资源使用效率的重要手段。 + SQL 跨可用区流量观测 tw@Oreoxmt + 跨可用区流量观测可用于识别 TiDB 集群中 SQL 查询产生的跨可用区网络流量,帮助你分析流量来源、优化部署架构,并控制云服务中的跨区传输成本,从而提升资源使用效率和成本可见性。 数据迁移 - Support query argument redaction in DM logs - Introduces an optional redact-info-log parameter to mask query arguments in DM logs, preventing sensitive data from appearing in logs. + 支持对 Data Migration (DM) 日志中的查询参数进行脱敏 tw@Oreoxmt + 引入 redact-info-log 配置项,支持对 DM 日志中的查询参数进行脱敏处理,防止敏感数据出现在日志中。 - Ensure Lightning compatibility with TiDB sql_require_primary_key=ON - Ensures the internal error-logging tables have primary keys if sql_require_primary_key=ON is enabled in TiDB, avoiding creation failures during data imports. + TiDB Lightning 与 TiDB sql_require_primary_key=ON 兼容 tw@Oreoxmt + 当在 TiDB 中启用系统变量 sql_require_primary_key=ON 时,确保内部错误日志表包含主键,以避免数据导入过程中表创建失败。 - Migrated sync-diff-inspector from tidb-tools to tiflow repository - Consolidates sync-diff-inspector with other data migration and replication tools (DM and TiCDC) in the tiflow repository. Now available via TiUP and a dedicated Docker image. + 将 sync-diff-inspector 从 pingcap/tidb-tools 迁移至 pingcap/tiflow 代码仓库 tw@Oreoxmt + 将 sync-diff-inspector 与 DM 和 TiCDC 等迁移与复制工具整合至 pingcap/tiflow 仓库。你现在可以通过 TiUP 或专用 Docker 镜像安装 sync-diff-inspector 工具。 From 78b2b70a2b0aa176785e45351adc23f19a3eb2a4 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 15 May 2025 17:13:04 +0800 Subject: [PATCH 65/83] Add ticdc debezium ddl and watermark --- releases/release-9.0.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 10b7613c74e5..5168289ee22c 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -244,6 +244,12 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/ticdc/ticdc-new-arch.md)。 +* TiCDC 为 Debezium 协议支持 DDL 事件和 WATERMARK 事件 [#11566](https://github.com/pingcap/tiflow/issues/11566) @[wk989898](https://github.com/wk989898) **tw@lilin90** + + TiCDC 支持以 Debezium 的格式输出 DDL 和 WATERMARK 事件。当上游 DDL 操作成功执行后,TiCDC 会将该 DDL 事件编码为 Kafka 消息,其 key 和 message 均采用 Debezium 格式。WATERMARK 事件是 TiCDC 的扩展功能(通过在 Kafka sink 中配置 [`enable-tidb-extension`](/ticdc/ticdc-sink-to-kafka.md#sink-uri-配置-kafka) 来启用),用于表示一个特殊的时间点,在这个时间点之前收到的事件是完整的。 + + 更多信息,请参考[用户文档](/ticdc/ticdc-debezium.md)。 + * TiCDC 新增安全机制,避免将数据同步回同一个 TiDB 集群 [#12062](https://github.com/pingcap/tiflow/issues/12062) @[wlwilliamx](https://github.com/wlwilliamx) **tw@qiancai** TiCDC 支持从上游的一个 TiDB 集群同步数据到下游的多个其他系统,包括其他 TiDB 集群。在 v9.0.0 之前,如果在 TiCDC 配置中误将同一个 TiDB 集群同时配置为数据源集群和目标集群,可能会导致数据同步循环,从而引发数据一致性问题。从 v9.0.0 开始,TiCDC 会自动检查源和目标 TiDB 集群是否相同,从而避免这种配置错误。 From cf799ba263e5326287fe9c234b1c2eda74b3b1de Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 15 May 2025 17:54:46 +0800 Subject: [PATCH 66/83] Fix and update format --- releases/release-9.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 5168289ee22c..485fb4b87ab6 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -188,9 +188,9 @@ TiDB 版本:9.0.0 * **故障诊断**:在对过往问题的诊断过程中,需要回顾历史活动和事件。持久化的负载数据可以帮助用户复盘过去某个时间段内的状态信息变化,找出异常点;或者精确定位某个数据库会话或 SQL 语句在特定时刻的具体行为。 - * **自动化运维**:数据库自治是提升用户体验并降低使用门槛的必然趋势,而实现数据库自动调优需要历史数据作为支撑。基于持久化的历史工作负载数据,TiDB 可以逐步向自动化运维迈进,例如:索引推荐(Index Advisor)、统计信息推荐(Statistics Advisor)、SQL 绑定推荐(SQL Binding Advisor)等。 + * **自动化运维**:数据库自治是提升用户体验并降低使用门槛的必然趋势,而实现数据库自动调优需要历史数据作为支撑。基于持久化的历史工作负载数据,TiDB 可以逐步向自动化运维迈进,例如:索引推荐 (Index Advisor)、统计信息推荐 (Statistics Advisor)、SQL 绑定推荐 (SQL Binding Advisor) 等。 - 在 v9.0.0 中,通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest) 启用 `Workload Repository`,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。被持久化的内存表分为以下两类: + 在 v9.0.0 中,通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest) 启用 Workload Repository,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。被持久化的内存表分为以下两类: * **存储累计指标的内存表**体积较大,快照和存储成本比较高,这些表会依据 [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) 的设置做批量快照,最小间隔 15 分钟。通过比较任意两个快照间指标的变化,得出这一段时间各个指标的增量。包括以下内存表: From 0d78d300350b0c6c38f7607b253a14dd9397892c Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 15 May 2025 18:44:25 +0800 Subject: [PATCH 67/83] Apply suggestions from code review Co-authored-by: Grace Cai --- 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 485fb4b87ab6..d37d8a9e3798 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -45,7 +45,7 @@ TiDB 版本:9.0.0 TiDB 索引推荐 (Index Advisor) tw@Oreoxmt - TiDB 索引推荐 (Index Advisor) 通过分析实际查询负载,智能识别缺失或冗余的索引,帮助你在无需深入了解业务的情况下完成索引优化。该功能可降低手动分析和调优的成本,并提升查询性能和系统稳定性。 + TiDB 索引推荐 (Index Advisor) 通过分析实际查询负载,自动识别缺失或冗余的索引,帮助你在无需深入了解业务的情况下完成索引优化。该功能可降低手动分析和调优的成本,并提升查询性能和系统稳定性。 SQL 跨可用区流量观测 tw@Oreoxmt @@ -54,15 +54,15 @@ TiDB 版本:9.0.0 数据迁移 支持对 Data Migration (DM) 日志中的查询参数进行脱敏 tw@Oreoxmt - 引入 redact-info-log 配置项,支持对 DM 日志中的查询参数进行脱敏处理,防止敏感数据出现在日志中。 + Data Migration (DM) 引入 redact-info-log 配置项,支持对 DM 日志中的查询参数进行脱敏处理,防止敏感数据出现在日志中。 TiDB Lightning 与 TiDB sql_require_primary_key=ON 兼容 tw@Oreoxmt - 当在 TiDB 中启用系统变量 sql_require_primary_key=ON 时,确保内部错误日志表包含主键,以避免数据导入过程中表创建失败。 + 当在 TiDB 中启用系统变量 sql_require_primary_key 时,TiDB Lightning 会在数据导入过程中自动为其内部的错误日志表和冲突检测表添加默认主键,以避免数据导入过程中表创建失败。 将 sync-diff-inspector 从 pingcap/tidb-tools 迁移至 pingcap/tiflow 代码仓库 tw@Oreoxmt - 将 sync-diff-inspector 与 DM 和 TiCDC 等迁移与复制工具整合至 pingcap/tiflow 仓库。你现在可以通过 TiUP 或专用 Docker 镜像安装 sync-diff-inspector 工具。 + 将 sync-diff-inspector 整合至已包含 DM 和 TiCDC 等迁移与同步工具的 pingcap/tiflow 仓库。现在你可以通过 TiUP 或专用 Docker 镜像安装 sync-diff-inspector 工具。 From 42c9ec31254141bc643fe1c6d2350a8ea853081b Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Fri, 16 May 2025 14:47:42 +0800 Subject: [PATCH 68/83] Apply suggestions from code review --- releases/release-9.0.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index d37d8a9e3798..dbf48e72fd7d 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -30,8 +30,8 @@ TiDB 版本:9.0.0 PD 微服务模式通过将 PD 的不同功能模块解耦为独立服务,提升了系统的可扩展性、稳定性和部署灵活性,为大规模集群部署提供了更好的架构基础。 - Point-In-Time-Recovery (PITR) Now Supports Recovery from Compacted Log Backups for Faster Restores - Starting from v9.0.0, the log backup feature provides offline compaction capabilities, converting unstructured log backup data into structured SST files. These SST files can now recovered into the cluster much more quickly than reapplying the original logs, delivering improved recovery performance. + 按时间点恢复 (Point-in-time recovery, PITR) 支持从[压缩后的日志备份](/br/br-compact-log-backup.md)中恢复,以加快恢复速度 + 从 v9.0.0 开始,压缩日志备份功能提供了离线压缩能力,将非结构化的日志备份数据转换为结构化的 SST 文件。与重新应用原始日志相比,这些 SST 文件可以更快地恢复到集群中,从而提升了恢复性能。 稳定性与高可用 @@ -40,8 +40,8 @@ TiDB 版本:9.0.0 数据库管理与可观测性 - [TiDB Workload Repository](/workload-repository.md) - TiDB Workload Repository 可以将数据库运行时的历史状态持久化,能够显著提升历史故障和性能问题的诊断效率,帮助你快速定位并优化问题,同时为健康检查和自动调优提供关键的数据基础。 + 新增 [TiDB Workload Repository](/workload-repository.md) 功能,支持将历史工作负载数据持久化存储到 TiKV 中 + TiDB Workload Repository 可以将数据库运行时的历史状态持久化,能够显著提升历史故障和性能问题的诊断效率,帮助你快速定位和解决问题,同时为健康检查和自动调优提供关键的数据基础。 TiDB 索引推荐 (Index Advisor) tw@Oreoxmt @@ -182,7 +182,7 @@ TiDB 版本:9.0.0 ### 可观测性 -* TiDB Workload Repository [#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** +* 新增 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** 很多高频更新的负载指标和状态信息被维护在实例的内存中,这些历史负载数据可以作为数据库的一部分持久化下来。主要用于以下目的: From ae34c9ab15a0ad23b944b87bce51554ffa073bf1 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Fri, 16 May 2025 14:55:36 +0800 Subject: [PATCH 69/83] Apply suggestions from code review --- releases/release-9.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index dbf48e72fd7d..fa4655ec7212 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -30,7 +30,7 @@ TiDB 版本:9.0.0 PD 微服务模式通过将 PD 的不同功能模块解耦为独立服务,提升了系统的可扩展性、稳定性和部署灵活性,为大规模集群部署提供了更好的架构基础。 - 按时间点恢复 (Point-in-time recovery, PITR) 支持从[压缩后的日志备份](/br/br-compact-log-backup.md)中恢复,以加快恢复速度 + 按时间点恢复 (Point-in-time recovery, PITR) 支持从压缩后的日志备份中恢复,以加快恢复速度 tw@lilin90 从 v9.0.0 开始,压缩日志备份功能提供了离线压缩能力,将非结构化的日志备份数据转换为结构化的 SST 文件。与重新应用原始日志相比,这些 SST 文件可以更快地恢复到集群中,从而提升了恢复性能。 @@ -40,7 +40,7 @@ TiDB 版本:9.0.0 数据库管理与可观测性 - 新增 [TiDB Workload Repository](/workload-repository.md) 功能,支持将历史工作负载数据持久化存储到 TiKV 中 + 新增 TiDB Workload Repository 功能,支持将历史工作负载数据持久化存储到 TiKV 中 tw@lilin90 TiDB Workload Repository 可以将数据库运行时的历史状态持久化,能够显著提升历史故障和性能问题的诊断效率,帮助你快速定位和解决问题,同时为健康检查和自动调优提供关键的数据基础。 From a9527155b8054567017916a9f73396bfa2b934e7 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Mon, 19 May 2025 10:54:41 +0800 Subject: [PATCH 70/83] delete empty lines --- releases/release-9.0.0.md | 52 +++++++++------------------------------ 1 file changed, 11 insertions(+), 41 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index fa4655ec7212..81f9c7bca569 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -155,7 +155,6 @@ TiDB 版本:9.0.0 更多信息,请参考[用户文档](/system-variables.md/#max_user_connections-从-v900-版本开始引入)。 - ### SQL 功能 * 支持对分区表的非唯一列创建全局索引 [#58650](https://github.com/pingcap/tidb/issues/58650) @[Defined2014](https://github.com/Defined2014) @[mjonss](https://github.com/mjonss) **tw@qiancai** @@ -307,7 +306,6 @@ TiDB 版本:9.0.0 | [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) | 新增 | 设置 [Workload Repository](/workload-repository.md) 统一快照的时间间隔。 | | [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval) | 新增 | 设置 [Workload Repository](/workload-repository.md) 快速时间快照的间隔。 | | [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days) | 新增 | 设置 [Workload Repository](/workload-repository.md) 中数据保存的天数。 | -| | | | ### 配置参数 @@ -332,15 +330,12 @@ TiDB 版本:9.0.0 升级 TiDB 前,请务必确保你的操作系统版本符合[操作系统及平台要求](/hardware-and-software-requirements.md#操作系统及平台要求)。 - ### 系统表变更 | 系统表 | 变更类型 | 描述 | | -------- | -------- | -------- | | [`mysql.tidb`](/mysql-schema/mysql-schema.md#集群状态系统表) | 修改 | 新增 `cluster_id` 字段,用于记录 TiDB 集群的唯一标识,注意该值为只读,不可修改。 | - - ## 移除功能 * 以下为已移除的功能: @@ -369,59 +364,35 @@ TiDB 版本:9.0.0 + TiDB * 优化了全局排序功能对 CPU 的资源开销,对 CPU 的最低配置要求从 8c 降低到了 1c,提升了全局排序在小规格机型上的易用性。 [#58680](https://github.com/pingcap/tidb/issues/58680) @[joccau](https://github.com/joccau) ++ TiKV -+ TiKV - - - -+ PD ++ PD - - -+ TiFlash - - ++ TiFlash + Tools - + Backup & Restore (BR) - - + + Backup & Restore (BR) + TiDB Data Migration (DM) - ## 错误修复 -+ TiDB ++ TiDB - - -+ TiKV ++ TiKV - ++ PD -+ PD - - - -+ TiFlash - - ++ TiFlash + Tools - + Backup & Restore (BR) + + Backup & Restore (BR) - - - + TiCDC - - - - + TiDB Lightning + + TiCDC - + + TiDB Lightning ## 性能测试 @@ -430,4 +401,3 @@ TiDB 版本:9.0.0 ## 贡献者 感谢来自 TiDB 社区的贡献者们: - From e73109b4628b6d1ded131c5c4221d4056422df7b Mon Sep 17 00:00:00 2001 From: houfaxin Date: Mon, 19 May 2025 11:00:42 +0800 Subject: [PATCH 71/83] commented out 9.0 links --- releases/release-9.0.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 81f9c7bca569..52fdfc584d36 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -11,7 +11,9 @@ summary: 了解 TiDB 9.0.0 版本的新功能、兼容性变更、改进提升 TiDB 版本:9.0.0 + 在 9.0.0 版本中,你可以获得以下关键特性: @@ -396,7 +398,9 @@ TiDB 版本:9.0.0 ## 性能测试 + ## 贡献者 From 5430920517d09e3600b55eb2dc3bcd2df98a0f9a Mon Sep 17 00:00:00 2001 From: houfaxin Date: Mon, 19 May 2025 11:04:45 +0800 Subject: [PATCH 72/83] Update release-9.0.0.md --- releases/release-9.0.0.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 52fdfc584d36..4be8710e1443 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -342,7 +342,7 @@ TiDB 版本:9.0.0 * 以下为已移除的功能: - * 原有的[执行计划绑定的自动演进](/sql-plan-management.md#自动演进绑定-baseline-evolution)已经被移除,后续推出增强的功能替代。 + * 原有的[执行计划绑定的自动演进](/sql-plan-management.md#自动演进绑定-baseline-evolution)已经被移除,后续推出增强的功能替代。 * 以下为计划在未来版本中移除的功能: @@ -364,6 +364,7 @@ TiDB 版本:9.0.0 ## 改进提升 + TiDB + * 优化了全局排序功能对 CPU 的资源开销,对 CPU 的最低配置要求从 8c 降低到了 1c,提升了全局排序在小规格机型上的易用性。 [#58680](https://github.com/pingcap/tidb/issues/58680) @[joccau](https://github.com/joccau) + TiKV From e2e5be9636e380ffd8170cb1ef841f8be51c678d Mon Sep 17 00:00:00 2001 From: houfaxin Date: Mon, 19 May 2025 11:12:19 +0800 Subject: [PATCH 73/83] commented unreleased links --- 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 4be8710e1443..a850845bdea9 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -153,9 +153,9 @@ TiDB 版本:9.0.0 * 新增系统变量 `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) 导致其他用户提交的请求得不到及时响应的问题。 + 从 v9.0.0 版本开始,你可通过设置系统变量 `MAX_USER_CONNECTIONS` ,来限制单个用户对单个 TiDB 节点可建立的连接数,避免由于单个用户消耗过多的 [token](/tidb-configuration-file.md#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 - 更多信息,请参考[用户文档](/system-variables.md/#max_user_connections-从-v900-版本开始引入)。 + 更多信息,请参考[用户文档](/system-variables.md#max_user_connections-从-v900-版本开始引入)。 ### SQL 功能 @@ -243,7 +243,7 @@ TiDB 版本:9.0.0 在新架构下,TiCDC 同步能力接近线性扩展,并能以更低的资源成本完成百万级表的同步任务。在高流量、频繁 DDL 操作及集群扩缩容等场景下,Changefeed 的延迟更低且更加稳定。 - 更多信息,请参考[用户文档](/ticdc/ticdc-new-arch.md)。 + * TiCDC 为 Debezium 协议支持 DDL 事件和 WATERMARK 事件 [#11566](https://github.com/pingcap/tiflow/issues/11566) @[wk989898](https://github.com/wk989898) **tw@lilin90** @@ -319,7 +319,7 @@ TiDB 版本:9.0.0 | TiKV | [`storage.max-ts.max-drift`](/tikv-configuration-file.md#max-drift-从-v900-版本开始引入) | 新增 | 定义当读写请求使用的 TS 超过 TiKV 缓存的 PD TSO 时,所允许的最长超出时间。默认值为`"60s"`。 | | TiFlash | [`format_version`](/tiflash/tiflash-configuration.md#format_version) | 修改 | 默认值从 `7` 变更为 `8`,代表 v9.0.0 以及以后版本 DTFile 文件的默认格式 `8`。该格式用于支持新的字符串序列化方案,可提升字符串的读写性能。 | | TiCDC | [`newarch`](/ticdc/ticdc-server-config.md#newarch) | 新增 | 控制是否开启 [TiCDC 新架构](/ticdc/ticdc-new-arch.md)。默认值为不设置,表示使用老架构。该配置项仅用于新架构,如果在 TiCDC 老架构的配置文件中添加该配置项,可能会导致解析失败。 | -| BR | [`--checkpoint-storage`](br/br-checkpoint-restore.md#实现细节-将断点数据存储在下游集群) | 新增 | 用于指定断点数据存储的外部存储。 | + | DM | [`redact-info-log`](/dm/dm-worker-configuration-file.md#redact-info-log-从-v900-版本开始引入) | 新增 | 控制是否开启 DM 日志脱敏。 | | TiProxy | [`enable-traffic-replay`](/tiproxy/tiproxy-configuration.md#enable-traffic-replay) | 新增 | 用于指定是否开启[流量回放](/tiproxy/tiproxy-traffic-replay.md)功能。如果为 `false`,则在流量捕获和流量回放时会报错。| | TiProxy | [`encryption-key-path`](/tiproxy/tiproxy-configuration.md#encryption-key-path) | 新增 | 用于指定流量捕获时用于加密流量文件的密钥的文件路径。| From 80b3eb722699c65f9e40a4150120c776ac669dcd Mon Sep 17 00:00:00 2001 From: houfaxin Date: Mon, 19 May 2025 11:15:23 +0800 Subject: [PATCH 74/83] commented out TiCDC new architecture link --- releases/release-9.0.0.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index a850845bdea9..9c4b09fb8d0f 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -298,7 +298,7 @@ TiDB 版本:9.0.0 |--------|------------------------------|------| | `txn_scope` | 删除 | 在 v9.0.0 中,该变量被移除。 | | [`tidb_hash_join_version`](/system-variables.md#tidb_hash_join_version-从-v840-版本开始引入) | 修改 | 经进一步的测试后,默认值从 `legacy` 变更为 `optimized`,即 TiDB 在执行 Hash Join 算子时使用 [Hash Join 算子的优化版](/sql-statements/sql-statement-explain-analyze.md#hashjoinv2),以提升 Hash Join 性能。 | -| [`max_user_connections`](/system-variables.md/#max_user_connections-从-v900-版本开始引入) | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file.md/#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 | +| [`max_user_connections`](/system-variables.md/#max_user_connections-从-v900-版本开始引入) | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file.md#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 | | [`tidb_accelerate_user_creation_update`](/system-variables.md/#tidb_accelerate_user_creation_update-从-v900-版本开始引入)| 新增 | 用于在用户数量过多的场景下,提升创建用户、修改用户信息的性能。 | | [`tidb_max_dist_task_nodes`](/system-variables.md/#tidb_max_dist_task_nodes-从-v900-版本开始引入)| 新增 | 控制分布式框架任务可使用的最大 TiDB 节点数上限。默认值为 `-1`,表示自动模式。在此模式下,系统将自动选择合适的节点数量。 | | [`mpp_version`](/system-variables.md#mpp_version-从-v660-版本开始引入) | 修改 | 该变量新增可选值 `3`,用于开启 TiFlash 新的字符串数据交换格式。当该变量的值未指定时,TiDB 将自动选择 MPP 执行计划的最新版本 `3`,以提高字符串的序列化和反序列化效率,从而提升查询性能。 | @@ -318,8 +318,10 @@ TiDB 版本:9.0.0 | TiKV | [`storage.max-ts.cache-sync-interval`](/tikv-configuration-file.md#cache-sync-interval-从-v900-版本开始引入) | 新增 | 控制 TiKV 更新本地 PD TSO 缓存的时间间隔。默认值为 `"15s"`。 | | TiKV | [`storage.max-ts.max-drift`](/tikv-configuration-file.md#max-drift-从-v900-版本开始引入) | 新增 | 定义当读写请求使用的 TS 超过 TiKV 缓存的 PD TSO 时,所允许的最长超出时间。默认值为`"60s"`。 | | TiFlash | [`format_version`](/tiflash/tiflash-configuration.md#format_version) | 修改 | 默认值从 `7` 变更为 `8`,代表 v9.0.0 以及以后版本 DTFile 文件的默认格式 `8`。该格式用于支持新的字符串序列化方案,可提升字符串的读写性能。 | + +| BR | [`--checkpoint-storage`](br/br-checkpoint-restore.md#实现细节-将断点数据存储在下游集群) | 新增 | 用于指定断点数据存储的外部存储。 | +--> | DM | [`redact-info-log`](/dm/dm-worker-configuration-file.md#redact-info-log-从-v900-版本开始引入) | 新增 | 控制是否开启 DM 日志脱敏。 | | TiProxy | [`enable-traffic-replay`](/tiproxy/tiproxy-configuration.md#enable-traffic-replay) | 新增 | 用于指定是否开启[流量回放](/tiproxy/tiproxy-traffic-replay.md)功能。如果为 `false`,则在流量捕获和流量回放时会报错。| | TiProxy | [`encryption-key-path`](/tiproxy/tiproxy-configuration.md#encryption-key-path) | 新增 | 用于指定流量捕获时用于加密流量文件的密钥的文件路径。| From 3e51931f74e4e541057a75552f29b5890a413056 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Mon, 19 May 2025 11:18:27 +0800 Subject: [PATCH 75/83] Update 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 9c4b09fb8d0f..eaf8534edded 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -298,7 +298,7 @@ TiDB 版本:9.0.0 |--------|------------------------------|------| | `txn_scope` | 删除 | 在 v9.0.0 中,该变量被移除。 | | [`tidb_hash_join_version`](/system-variables.md#tidb_hash_join_version-从-v840-版本开始引入) | 修改 | 经进一步的测试后,默认值从 `legacy` 变更为 `optimized`,即 TiDB 在执行 Hash Join 算子时使用 [Hash Join 算子的优化版](/sql-statements/sql-statement-explain-analyze.md#hashjoinv2),以提升 Hash Join 性能。 | -| [`max_user_connections`](/system-variables.md/#max_user_connections-从-v900-版本开始引入) | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](tidb-configuration-file.md#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 | +| [`max_user_connections`](/system-variables.md/#max_user_connections-从-v900-版本开始引入) | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](/tidb-configuration-file.md#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 | | [`tidb_accelerate_user_creation_update`](/system-variables.md/#tidb_accelerate_user_creation_update-从-v900-版本开始引入)| 新增 | 用于在用户数量过多的场景下,提升创建用户、修改用户信息的性能。 | | [`tidb_max_dist_task_nodes`](/system-variables.md/#tidb_max_dist_task_nodes-从-v900-版本开始引入)| 新增 | 控制分布式框架任务可使用的最大 TiDB 节点数上限。默认值为 `-1`,表示自动模式。在此模式下,系统将自动选择合适的节点数量。 | | [`mpp_version`](/system-variables.md#mpp_version-从-v660-版本开始引入) | 修改 | 该变量新增可选值 `3`,用于开启 TiFlash 新的字符串数据交换格式。当该变量的值未指定时,TiDB 将自动选择 MPP 执行计划的最新版本 `3`,以提高字符串的序列化和反序列化效率,从而提升查询性能。 | From d59505acf87ecf9676a937dcb49794b6c5bb8479 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Mon, 19 May 2025 11:30:40 +0800 Subject: [PATCH 76/83] Update release-9.0.0.md --- 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 eaf8534edded..a99d9e9ef97b 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -94,7 +94,7 @@ TiDB 版本:9.0.0 v9.0.0 对这部分 DCL 的性能进行了优化,创建 200 万用户仅需 37 分钟,大大提升了 DCL 语句的执行性能,提升了 TiDB 在此类 SaaS 场景的用户体验。 - 更多信息,请参考[用户文档](/system-variables.md/#tidb_accelerate_user_creation_update-从-v900-版本开始引入)。 + 更多信息,请参考[用户文档](/system-variables.md#tidb_accelerate_user_creation_update-从-v900-版本开始引入)。 * 新增支持下推以下函数到 TiFlash [#59317](https://github.com/pingcap/tidb/issues/59317) @[guo-shaoge](https://github.com/guo-shaoge) **tw@Oreoxmt** @@ -298,9 +298,9 @@ TiDB 版本:9.0.0 |--------|------------------------------|------| | `txn_scope` | 删除 | 在 v9.0.0 中,该变量被移除。 | | [`tidb_hash_join_version`](/system-variables.md#tidb_hash_join_version-从-v840-版本开始引入) | 修改 | 经进一步的测试后,默认值从 `legacy` 变更为 `optimized`,即 TiDB 在执行 Hash Join 算子时使用 [Hash Join 算子的优化版](/sql-statements/sql-statement-explain-analyze.md#hashjoinv2),以提升 Hash Join 性能。 | -| [`max_user_connections`](/system-variables.md/#max_user_connections-从-v900-版本开始引入) | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](/tidb-configuration-file.md#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 | -| [`tidb_accelerate_user_creation_update`](/system-variables.md/#tidb_accelerate_user_creation_update-从-v900-版本开始引入)| 新增 | 用于在用户数量过多的场景下,提升创建用户、修改用户信息的性能。 | -| [`tidb_max_dist_task_nodes`](/system-variables.md/#tidb_max_dist_task_nodes-从-v900-版本开始引入)| 新增 | 控制分布式框架任务可使用的最大 TiDB 节点数上限。默认值为 `-1`,表示自动模式。在此模式下,系统将自动选择合适的节点数量。 | +| [`max_user_connections`](/system-variables.md#max_user_connections-从-v900-版本开始引入) | 新增 | 用于限制单个用户对单个 TiDB 节点可建立的连接数,避免单个用户消耗过多的 [token](/tidb-configuration-file.md#token-limit) 导致其他用户提交的请求得不到及时响应的问题。 | +| [`tidb_accelerate_user_creation_update`](/system-variables.md#tidb_accelerate_user_creation_update-从-v900-版本开始引入)| 新增 | 用于在用户数量过多的场景下,提升创建用户、修改用户信息的性能。 | +| [`tidb_max_dist_task_nodes`](/system-variables.md#tidb_max_dist_task_nodes-从-v900-版本开始引入)| 新增 | 控制分布式框架任务可使用的最大 TiDB 节点数上限。默认值为 `-1`,表示自动模式。在此模式下,系统将自动选择合适的节点数量。 | | [`mpp_version`](/system-variables.md#mpp_version-从-v660-版本开始引入) | 修改 | 该变量新增可选值 `3`,用于开启 TiFlash 新的字符串数据交换格式。当该变量的值未指定时,TiDB 将自动选择 MPP 执行计划的最新版本 `3`,以提高字符串的序列化和反序列化效率,从而提升查询性能。 | | [`pd_enable_follower_handle_region`](/system-variables.md#pd_enable_follower_handle_region-从-v760-版本开始引入) | 修改 | 默认值从 `OFF` 变更为 `ON`。当该值为 `ON` 时,TiDB 在获取 Region 信息时会将请求均匀地发送到所有 PD 节点上,因此 PD follower 也可以处理 Region 信息请求,从而减轻 PD leader 的 CPU 压力。从 v9.0.0 开始,当该变量值为 `ON` 时,TiDB Lightning 的 Region 信息请求也会被均匀发送到所有 PD 节点。 | | [`tidb_pipelined_dml_resource_policy`](/system-variables.md#tidb_pipelined_dml_resource_policy-从-v900-版本开始引入) | 新增 | 该变量控制 [Pipelined DML](/pipelined-dml.md) 的资源使用策略,仅在 [`tidb_dml_type`](#tidb_dml_type-从-v800-版本开始引入) 为 `bulk` 时生效。| From 92cd4aabb307fedcd7e60d77f6aeef6ff61e5ca8 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Mon, 19 May 2025 11:43:38 +0800 Subject: [PATCH 77/83] Update release-9.0.0.md --- releases/release-9.0.0.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index a99d9e9ef97b..03174383c8a6 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -191,9 +191,9 @@ TiDB 版本:9.0.0 * **自动化运维**:数据库自治是提升用户体验并降低使用门槛的必然趋势,而实现数据库自动调优需要历史数据作为支撑。基于持久化的历史工作负载数据,TiDB 可以逐步向自动化运维迈进,例如:索引推荐 (Index Advisor)、统计信息推荐 (Statistics Advisor)、SQL 绑定推荐 (SQL Binding Advisor) 等。 - 在 v9.0.0 中,通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest) 启用 Workload Repository,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。被持久化的内存表分为以下两类: + 在 v9.0.0 中,通过设置变量 [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest-从-v900-版本开始引入) 启用 Workload Repository,TiDB 会把一部分内存表的快照持续写入 `workload_schema`,持久化到 TiKV 中。当前版本默认关闭。被持久化的内存表分为以下两类: - * **存储累计指标的内存表**体积较大,快照和存储成本比较高,这些表会依据 [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) 的设置做批量快照,最小间隔 15 分钟。通过比较任意两个快照间指标的变化,得出这一段时间各个指标的增量。包括以下内存表: + * **存储累计指标的内存表**体积较大,快照和存储成本比较高,这些表会依据 [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval-从-v900-版本开始引入) 的设置做批量快照,最小间隔 15 分钟。通过比较任意两个快照间指标的变化,得出这一段时间各个指标的增量。包括以下内存表: * [`INFORMATION_SCHEMA.TIDB_INDEX_USAGE`](/information-schema/information-schema-tidb-index-usage.md) * [`INFORMATION_SCHEMA.TIDB_STATEMENTS_STATS`](/statement-summary-tables.md) (由 `STATEMENTS_SUMMARY` 派生的内存表,计划在未来取代 `STATEMENTS_SUMMARY`。) @@ -303,11 +303,11 @@ TiDB 版本:9.0.0 | [`tidb_max_dist_task_nodes`](/system-variables.md#tidb_max_dist_task_nodes-从-v900-版本开始引入)| 新增 | 控制分布式框架任务可使用的最大 TiDB 节点数上限。默认值为 `-1`,表示自动模式。在此模式下,系统将自动选择合适的节点数量。 | | [`mpp_version`](/system-variables.md#mpp_version-从-v660-版本开始引入) | 修改 | 该变量新增可选值 `3`,用于开启 TiFlash 新的字符串数据交换格式。当该变量的值未指定时,TiDB 将自动选择 MPP 执行计划的最新版本 `3`,以提高字符串的序列化和反序列化效率,从而提升查询性能。 | | [`pd_enable_follower_handle_region`](/system-variables.md#pd_enable_follower_handle_region-从-v760-版本开始引入) | 修改 | 默认值从 `OFF` 变更为 `ON`。当该值为 `ON` 时,TiDB 在获取 Region 信息时会将请求均匀地发送到所有 PD 节点上,因此 PD follower 也可以处理 Region 信息请求,从而减轻 PD leader 的 CPU 压力。从 v9.0.0 开始,当该变量值为 `ON` 时,TiDB Lightning 的 Region 信息请求也会被均匀发送到所有 PD 节点。 | -| [`tidb_pipelined_dml_resource_policy`](/system-variables.md#tidb_pipelined_dml_resource_policy-从-v900-版本开始引入) | 新增 | 该变量控制 [Pipelined DML](/pipelined-dml.md) 的资源使用策略,仅在 [`tidb_dml_type`](#tidb_dml_type-从-v800-版本开始引入) 为 `bulk` 时生效。| -| [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest)| 新增 | 这变量用户设置 [Workload Repository](/workload-repository.md) 的写入目标。默认为空,不启用。 设置为 `table` 写入 TiKV 。| -| [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval) | 新增 | 设置 [Workload Repository](/workload-repository.md) 统一快照的时间间隔。 | -| [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval) | 新增 | 设置 [Workload Repository](/workload-repository.md) 快速时间快照的间隔。 | -| [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days) | 新增 | 设置 [Workload Repository](/workload-repository.md) 中数据保存的天数。 | +| [`tidb_pipelined_dml_resource_policy`](/system-variables.md#tidb_pipelined_dml_resource_policy-从-v900-版本开始引入) | 新增 | 该变量控制 [Pipelined DML](/pipelined-dml.md) 的资源使用策略,仅在 [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) 为 `bulk` 时生效。| +| [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest-从-v900-版本开始引入)| 新增 | 这变量用户设置 [Workload Repository](/workload-repository.md) 的写入目标。默认为空,不启用。 设置为 `table` 写入 TiKV 。| +| [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval-从-v900-版本开始引入) | 新增 | 设置 [Workload Repository](/workload-repository.md) 统一快照的时间间隔。 | +| [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval-从-v900-版本开始引入) | 新增 | 设置 [Workload Repository](/workload-repository.md) 快速时间快照的间隔。 | +| [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days-从-v900-版本开始引入) | 新增 | 设置 [Workload Repository](/workload-repository.md) 中数据保存的天数。 | ### 配置参数 From 9db46b03f6e9445f4f2dec14f9855484c9cf0051 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Mon, 19 May 2025 11:50:14 +0800 Subject: [PATCH 78/83] Update release-9.0.0.md --- releases/release-9.0.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 03174383c8a6..983dac337b69 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -201,7 +201,7 @@ TiDB 版本:9.0.0 * [`INFORMATION_SCHEMA.CLIENT_ERRORS_SUMMARY_BY_USER`](/information-schema/client-errors-summary-by-user.md) * [`INFORMATION_SCHEMA.CLIENT_ERRORS_SUMMARY_GLOBAL`](/information-schema/client-errors-summary-global.md) - * **保存即时状态的内存表**刷新很快,通常体积不大,需要做很小间隔的快照才有作用。通过设置 [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval) 的值指定时间间隔,默认为 5 秒。设置为 0 则关闭这个类型的快照。被持久化的这类内存表包括: + * **保存即时状态的内存表**刷新很快,通常体积不大,需要做很小间隔的快照才有作用。通过设置 [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval-从-v900-版本开始引入) 的值指定时间间隔,默认为 5 秒。设置为 0 则关闭这个类型的快照。被持久化的这类内存表包括: * [`INFORMATION_SCHEMA.PROCESSLIST`](/information-schema/information-schema-processlist.md) * [`INFORMATION_SCHEMA.DATA_LOCK_WAITS`](/information-schema/information-schema-data-lock-waits.md) @@ -209,7 +209,7 @@ TiDB 版本:9.0.0 * [`INFORMATION_SCHEMA.MEMORY_USAGE`](/information-schema/information-schema-memory-usage.md) * [`INFORMATION_SCHEMA.DEADLOCKS`](/information-schema/information-schema-deadlocks.md) - `Workload Repository` 中的数据会被自动清理,默认保存 7 天。通过设置 [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days) 修改保存时间。 + `Workload Repository` 中的数据会被自动清理,默认保存 7 天。通过设置 [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days-从-v900-版本开始引入) 修改保存时间。 通过持久化数据库的历史工作负载,TiDB 可以更好地进行故障排查和优化推荐,并在未来推出一系列围绕历史负载的自动化工具,提升数据库运维和诊断的用户体验。 From 91315616725a47c933202045b4a03130dd6975ee Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 19 May 2025 11:53:56 +0800 Subject: [PATCH 79/83] fix hashagg_use_magic_hash --- 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 983dac337b69..7e7645dd80a7 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -313,10 +313,10 @@ TiDB 版本:9.0.0 | 配置文件或组件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | -| TiKV | [`hashagg_use_magic_hash`](/tikv-configuration-file.md#hashagg_use_magic_hash-从-v900-版本开始引入) | 新增 | 控制 TiFlash 在进行聚合操作时使用的哈希函数。 | | TiKV | [`storage.max-ts.action-on-invalid-update`](/tikv-configuration-file.md#action-on-invalid-update-从-v900-版本开始引入) | 新增 | 指定当检测到非法的 `max-ts` 更新请求时,TiKV 的处理方式。默认值为 `"panic"`,代表 TiKV 检测到非法的 `max-ts` 更新请求时会 panic。 | | TiKV | [`storage.max-ts.cache-sync-interval`](/tikv-configuration-file.md#cache-sync-interval-从-v900-版本开始引入) | 新增 | 控制 TiKV 更新本地 PD TSO 缓存的时间间隔。默认值为 `"15s"`。 | | TiKV | [`storage.max-ts.max-drift`](/tikv-configuration-file.md#max-drift-从-v900-版本开始引入) | 新增 | 定义当读写请求使用的 TS 超过 TiKV 缓存的 PD TSO 时,所允许的最长超出时间。默认值为`"60s"`。 | +| TiFlash | [`hashagg_use_magic_hash`](/tiflash/tiflash-configuration.md#hashagg_use_magic_hash-从-v900-版本开始引入) | 新增 | 控制 TiFlash 在进行聚合操作时使用的哈希函数。 | | TiFlash | [`format_version`](/tiflash/tiflash-configuration.md#format_version) | 修改 | 默认值从 `7` 变更为 `8`,代表 v9.0.0 以及以后版本 DTFile 文件的默认格式 `8`。该格式用于支持新的字符串序列化方案,可提升字符串的读写性能。 | * TiDB Lightning 与 TiDB `sql_require_primary_key=ON` 兼容 [#57479](https://github.com/pingcap/tidb/issues/57479) @[lance6716](https://github.com/lance6716) **tw@Oreoxmt** @@ -304,7 +304,7 @@ TiDB 版本:9.0.0 | [`mpp_version`](/system-variables.md#mpp_version-从-v660-版本开始引入) | 修改 | 该变量新增可选值 `3`,用于开启 TiFlash 新的字符串数据交换格式。当该变量的值未指定时,TiDB 将自动选择 MPP 执行计划的最新版本 `3`,以提高字符串的序列化和反序列化效率,从而提升查询性能。 | | [`pd_enable_follower_handle_region`](/system-variables.md#pd_enable_follower_handle_region-从-v760-版本开始引入) | 修改 | 默认值从 `OFF` 变更为 `ON`。当该值为 `ON` 时,TiDB 在获取 Region 信息时会将请求均匀地发送到所有 PD 节点上,因此 PD follower 也可以处理 Region 信息请求,从而减轻 PD leader 的 CPU 压力。从 v9.0.0 开始,当该变量值为 `ON` 时,TiDB Lightning 的 Region 信息请求也会被均匀发送到所有 PD 节点。 | | [`tidb_pipelined_dml_resource_policy`](/system-variables.md#tidb_pipelined_dml_resource_policy-从-v900-版本开始引入) | 新增 | 该变量控制 [Pipelined DML](/pipelined-dml.md) 的资源使用策略,仅在 [`tidb_dml_type`](/system-variables.md#tidb_dml_type-从-v800-版本开始引入) 为 `bulk` 时生效。| -| [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest-从-v900-版本开始引入)| 新增 | 这变量用户设置 [Workload Repository](/workload-repository.md) 的写入目标。默认为空,不启用。 设置为 `table` 写入 TiKV 。| +| [`tidb_workload_repository_dest`](/system-variables.md#tidb_workload_repository_dest-从-v900-版本开始引入)| 新增 | 设置 [Workload Repository](/workload-repository.md) 的写入目标。默认为空,不启用。 设置为 `table` 写入 TiKV 。| | [`tidb_workload_repository_snapshot_interval`](/system-variables.md#tidb_workload_repository_snapshot_interval-从-v900-版本开始引入) | 新增 | 设置 [Workload Repository](/workload-repository.md) 统一快照的时间间隔。 | | [`tidb_workload_repository_active_sampling_interval`](/system-variables.md#tidb_workload_repository_active_sampling_interval-从-v900-版本开始引入) | 新增 | 设置 [Workload Repository](/workload-repository.md) 快速时间快照的间隔。 | | [`tidb_workload_repository_retention_days`](/system-variables.md#tidb_workload_repository_retention_days-从-v900-版本开始引入) | 新增 | 设置 [Workload Repository](/workload-repository.md) 中数据保存的天数。 | @@ -321,8 +321,8 @@ TiDB 版本:9.0.0 | DM | [`redact-info-log`](/dm/dm-worker-configuration-file.md#redact-info-log-从-v900-版本开始引入) | 新增 | 控制是否开启 DM 日志脱敏。 | +--> | TiProxy | [`enable-traffic-replay`](/tiproxy/tiproxy-configuration.md#enable-traffic-replay) | 新增 | 用于指定是否开启[流量回放](/tiproxy/tiproxy-traffic-replay.md)功能。如果为 `false`,则在流量捕获和流量回放时会报错。| | TiProxy | [`encryption-key-path`](/tiproxy/tiproxy-configuration.md#encryption-key-path) | 新增 | 用于指定流量捕获时用于加密流量文件的密钥的文件路径。| From 19bdac90e114a60468e36852470cab1542b5a95f Mon Sep 17 00:00:00 2001 From: Roger Song Date: Tue, 20 May 2025 09:54:13 +0800 Subject: [PATCH 82/83] announcement to deprecate hint NTH_PLAN() --- releases/release-9.0.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 0988fd3b729c..41eac26ab806 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -362,6 +362,7 @@ TiDB 版本:9.0.0 * 从 v6.3.0 开始,分区表默认使用[动态裁剪模式](/partitioned-table.md#动态裁剪模式),相比静态裁剪模式,动态裁剪模式支持 IndexJoin、Plan Cache 等特性,性能表现更好。在未来版本中,静态裁剪模式将被废弃。 * 配置项 [`concurrently-init-stats`](/tidb-configuration-file.md#concurrently-init-stats-从-v810-和-v752-版本开始引入) 用于控制初始化统计信息缓存的并发模式,并从 v8.2 开始默认启用。计划在后续版本中仅支持并发模式,因此该配置项将被移除。 * 算子 `indexMergeJoin` 是表连接的一种方式,目前已经被其他连接方式取代,`indexMergeJoin` 计划在未来版本废弃。对应的系统变量[`tidb_enable_index_merge_join`](/system-variables.md#tidb_enable_index_merge_join) 也将被一同废弃。 +* 作为测试用途的优化器提示 [`NTH_PLAN(N)`](/optimizer-hints.md#nth_plann) 计划在未来版本废弃。 ## 改进提升 From 893ceb05c42364a723723a15dbeb64d3de4aae5e Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Tue, 20 May 2025 10:05:13 +0800 Subject: [PATCH 83/83] Apply suggestions from code review --- releases/release-9.0.0.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/releases/release-9.0.0.md b/releases/release-9.0.0.md index 41eac26ab806..2ca5cbc086eb 100644 --- a/releases/release-9.0.0.md +++ b/releases/release-9.0.0.md @@ -243,7 +243,9 @@ TiDB 版本:9.0.0 在新架构下,TiCDC 同步能力接近线性扩展,并能以更低的资源成本完成百万级表的同步任务。在高流量、频繁 DDL 操作及集群扩缩容等场景下,Changefeed 的延迟更低且更加稳定。 - + * TiCDC 为 Debezium 协议支持 DDL 事件和 WATERMARK 事件 [#11566](https://github.com/pingcap/tiflow/issues/11566) @[wk989898](https://github.com/wk989898) **tw@lilin90** @@ -261,7 +263,9 @@ TiDB 版本:9.0.0 从 v9.0.0 开始,你可以通过 `redact-info-log` 配置项控制是否启用 DM 日志脱敏功能。启用后,DM 日志中包含敏感数据的查询参数将被替换为 `?` 占位符。如需开启该功能,你可以在 DM-worker 配置文件中设置 `redact-info-log` 为 `true`,或在启动 DM 时传入参数 `--redact-info-log=true`。该功能仅对查询参数进行脱敏,不会脱敏整个 SQL 语句,并且需要重启 DM-worker 才能生效。 - + * TiDB Lightning 与 TiDB `sql_require_primary_key=ON` 兼容 [#57479](https://github.com/pingcap/tidb/issues/57479) @[lance6716](https://github.com/lance6716) **tw@Oreoxmt**