From 339bb694df0bf7dd0146a0701f933dc50bd2aeec Mon Sep 17 00:00:00 2001 From: houfaxin Date: Wed, 12 Mar 2025 10:27:07 +0800 Subject: [PATCH 01/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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#全局索引)。