From ececacb9f260596ba3b53734c1a8c81de22dea47 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 4 Apr 2023 13:49:02 +0800 Subject: [PATCH 01/85] releases: add TiDB 7.1.0 release notes Signed-off-by: Aolin --- releases/release-7.1.0.md | 226 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 226 insertions(+) create mode 100644 releases/release-7.1.0.md diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md new file mode 100644 index 000000000000..c254a60a96c2 --- /dev/null +++ b/releases/release-7.1.0.md @@ -0,0 +1,226 @@ +--- +title: TiDB 7.1.0 Release Notes +summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升,以及错误修复。 +--- + +# TiDB 7.1.0 Release Notes + +发版日期:2023 年 x 月 x 日 + +TiDB 版本:7.1.0 + +试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/dev/quick-start-with-tidb) | [下载离线包](https://cn.pingcap.com/product-community/) + +在 7.1.0 版本中,你可以获得以下关键特性: + +## 功能详情 + +### 可扩展性 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 性能 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 稳定性 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 高可用 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### SQL 功能 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 数据库管理 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 可观测性 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 安全 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +### 数据迁移 + +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + +## 兼容性变更 + +> **注意:** +> +> 以下为从 v7.0.0 升级至当前版本 (v7.1.0) 所需兼容性变更信息。如果从 v6.6.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 release notes 中提到的兼容性变更信息。 + +### MySQL 兼容性 + +* 兼容性 1 + +* 兼容性 2 + +### 系统变量 + +| 变量名 | 修改类型(包括新增/修改/删除) | 描述 | +|--------|------------------------------|------| +| | | | +| | | | +| | | | +| | | | + +### 配置文件参数 + +| 配置文件 | 配置项 | 修改类型 | 描述 | +| -------- | -------- | -------- | -------- | +| | | | | +| | | | | +| | | | | +| | | | | + +### 其他 + +## 废弃功能 + +## 改进提升 + ++ TiDB + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiKV + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ PD + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiFlash + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ Tools + + + Backup & Restore (BR) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiCDC + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Data Migration (DM) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Lightning + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiUP + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + +## 错误修复 + ++ TiDB + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiKV + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ PD + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ TiFlash + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + ++ Tools + + + Backup & Restore (BR) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiCDC + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Data Migration (DM) + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiDB Lightning + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + + + TiUP + + - note [#issue](链接) @[贡献者 GitHub ID](链接) + - note [#issue](链接) @[贡献者 GitHub ID](链接) + +## 贡献者 + +感谢来自 TiDB 社区的贡献者们: + +- [贡献者 GitHub ID]() \ No newline at end of file From 9c883bbff7cfe6c0ca3242e37ae5099e95e8c90e Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 7 Apr 2023 18:35:28 +0800 Subject: [PATCH 02/85] Update release-7.1.0.md --- releases/release-7.1.0.md | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index c254a60a96c2..2f9a0a9e76fe 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -17,14 +17,24 @@ TiDB 版本:7.1.0 ### 可扩展性 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) +* TiFlash 支持存算分离和对象存储 GA [#6882](https://github.com/pingcap/tiflash/issues/6882) @[flowbehappy](https://github.com/flowbehappy) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + 在 v7.0.0 版本中,TiFlash 在已有的存算一体架构之外,新增存算分离架构。在此架构下,TiFlash 节点分为 Compute Node (计算节点)和 Write Node(写入节点)两种类型,并支持兼容 S3 API 的对象存储。这两种节点都可以单独扩缩容,独立调整计算或数据存储能力。 + + 从 v7.1.0 版本开始,TiFlash 存算分离架构 GA。TiFlash 的存算分离架构和存算一体架构不能混合使用、相互转换,需要在部署 TiFlash 时进行相应的配置指定使用其中的一种架构。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/tiflash/tiflash-disaggregated-and-s3.md)。 ### 性能 +* TiFlash 查询支持延迟物化功能 GA [#5829](https://github.com/pingcap/tiflash/issues/5829) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) + + 当 `SELECT` 语句中包含过滤条件(`WHERE` 子句)时,TiFlash 默认会先读取该查询所需列的全部数据,然后再根据查询条件对数据进行过滤、聚合等计算任务。延迟物化是一种优化方式,它支持下推部分过滤条件到 TableScan 算子,即先扫描过滤条件相关的列数据,过滤得到符合条件的行后,再扫描这些行的其他列数据,继续后续计算,从而减少 IO 扫描和数据处理的计算量。 + + 从 v7.1.0 版本开始,TiFlash 延迟物化功能 GA。在实验特性阶段引入的系统变量 [`tidb_opt_enable_late_materialization`](/system-variables.md#tidb_opt_enable_late_materialization-从-v700-版本开始引入) 的默认值将调整为 `ON` 开启,TiDB 优化器会根据统计信息和查询的过滤条件,决定哪些过滤条件会被下推到 TableScan 算子。 + + 更多信息,请参考[用户文档](/tiflash/tiflash-late-materialization.md)。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) @@ -33,11 +43,13 @@ TiDB 版本:7.1.0 ### 稳定性 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) +* TiFlash MPP模式根据网络交换数据量自动选择 JOIN 算法 [#7084](https://github.com/pingcap/tiflash/issues/7084) @[solotzg](https://github.com/solotzg) - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + TiFlash MPP模式有多种 JOIN 算法。在 v7.1.0 版本之前,TiDB 根据变量 `tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 以及实际数据量决定 TiFlash MPP 模式是否使用 Broadcast Join 算法。 + + 在 v7.1.0 版本中,TiDB 引入变量 `tidb_prefer_broadcast_join_by_exchange_data_size`,指定 Broadcast Join 代价模型。默认为 `0`,表示使用 v7.1.0 版本之前的评估模型,即和之前的版本功能一致;设定为 `1`,表示使用新的 Broadcast Join 代价模型,即通过网络交换数据量自动判断是否使用 Broadcast Join 算法。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 ### 高可用 @@ -49,6 +61,14 @@ TiDB 版本:7.1.0 ### SQL 功能 +* 支持通过 `INSERT INTO SELECT` 语句保存 TiFlash 查询结果 GA [#37515](https://github.com/pingcap/tidb/issues/37515) @[gengliqi](https://github.com/gengliqi) + + 从 v6.5.0 起,TiDB 支持下推 `INSERT INTO SELECT` 语句中的 `SELECT` 子句(分析查询)到 TiFlash,你可以将 TiFlash 的查询结果方便地保存到 `INSERT INTO` 指定的 TiDB 表中供后续分析使用,起到了结果缓存(即结果物化)的效果。 + + 在 v7.1.0 版本中,TiDB 正式将该功能 GA。不同 SQL mode 对于 `INSERT INTO SELECT` 语句的计算有不同要求,而 TiFlash 的计算规则不满足 `STRICT SQL Mode` 要求,因此,TiDB 要求只有当前会话的 SQL Mode 是除 `STRICT_TRANS_TABLES`, `STRICT_ALL_TABLES` 之外的值时,才允许将 `INSERT INTO SELECT` 语句中的查询下推至 TiFlash。同时,在实验特性阶段引入的系统变量 `tidb_enable_tiflash_read_for_write_stmt` 将被移除。TiDB 保持查询结果时,是否将查询下推至 TiFlash,完全根据 SQL Mode 及 TiFlash 副本的代价估算,由优化器自行决定。 + + 更多信息,请参考[用户文档](/tiflash/tiflash-results-materialization.md)。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) @@ -73,11 +93,11 @@ TiDB 版本:7.1.0 ### 安全 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) +* 更换 TiFlash 系统表信息的查询接口 [#6941](https://github.com/pingcap/tiflash/issues/6941) @[flowbehappy](https://github.com/flowbehappy) - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + 在 v7.1.0 之前的版本中,TiFlash 通过 http 服务接口向 TiDB 提供 `information_schema.tiflash_tables` 和 `information_schema.tiflash_segments` 系统表信息查询。但是 http 协议存在安全风险。 - 更多信息,请参考[用户文档](链接)。 + 从 v7.1.0 版本开始,TiFlash 使用 gRPC 服务接口向 TiDB 提供`information_schema.tiflash_tables` 和 `information_schema.tiflash_segments` 系统表信息查询,避免 http 服务的安全风险。 ### 数据迁移 From dcb60425ee2a98cab958c5abaf729f25aa34c453 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 10 Apr 2023 14:55:34 +0800 Subject: [PATCH 03/85] update feature details, add behavior changes Signed-off-by: Aolin --- releases/release-7.1.0.md | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 2f9a0a9e76fe..dea668c2e9f1 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -17,17 +17,17 @@ TiDB 版本:7.1.0 ### 可扩展性 -* TiFlash 支持存算分离和对象存储 GA [#6882](https://github.com/pingcap/tiflash/issues/6882) @[flowbehappy](https://github.com/flowbehappy) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) +* TiFlash 支持存算分离和对象存储 GA [#6882](https://github.com/pingcap/tiflash/issues/6882) @[flowbehappy](https://github.com/flowbehappy) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw:qiancai** 在 v7.0.0 版本中,TiFlash 在已有的存算一体架构之外,新增存算分离架构。在此架构下,TiFlash 节点分为 Compute Node (计算节点)和 Write Node(写入节点)两种类型,并支持兼容 S3 API 的对象存储。这两种节点都可以单独扩缩容,独立调整计算或数据存储能力。 - + 从 v7.1.0 版本开始,TiFlash 存算分离架构 GA。TiFlash 的存算分离架构和存算一体架构不能混合使用、相互转换,需要在部署 TiFlash 时进行相应的配置指定使用其中的一种架构。 更多信息,请参考[用户文档](/tiflash/tiflash-disaggregated-and-s3.md)。 ### 性能 -* TiFlash 查询支持延迟物化功能 GA [#5829](https://github.com/pingcap/tiflash/issues/5829) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) +* TiFlash 查询支持延迟物化功能 GA [#5829](https://github.com/pingcap/tiflash/issues/5829) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) **tw:qiancai** 当 `SELECT` 语句中包含过滤条件(`WHERE` 子句)时,TiFlash 默认会先读取该查询所需列的全部数据,然后再根据查询条件对数据进行过滤、聚合等计算任务。延迟物化是一种优化方式,它支持下推部分过滤条件到 TableScan 算子,即先扫描过滤条件相关的列数据,过滤得到符合条件的行后,再扫描这些行的其他列数据,继续后续计算,从而减少 IO 扫描和数据处理的计算量。 @@ -35,6 +35,14 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/tiflash/tiflash-late-materialization.md)。 +* TiFlash MPP 模式根据网络交换数据量自动选择 JOIN 算法 [#7084](https://github.com/pingcap/tiflash/issues/7084) @[solotzg](https://github.com/solotzg) **tw:qiancai** + + TiFlash MPP 模式有多种 JOIN 算法。在 v7.1.0 版本之前,TiDB 根据变量 `tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 以及实际数据量决定 TiFlash MPP 模式是否使用 Broadcast Join 算法。 + + 在 v7.1.0 版本中,TiDB 引入变量 `tidb_prefer_broadcast_join_by_exchange_data_size`,表示是否基于最小网络数据交换策略来选择 MPP Join 算法。默认为 `ON`,表示启用该功能,`tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 将不再生效;设定为 `OFF`,表示关闭该功能,使用 v7.1.0 版本之前的评估模型,即和之前的版本功能一致; + + 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) @@ -43,13 +51,11 @@ TiDB 版本:7.1.0 ### 稳定性 -* TiFlash MPP模式根据网络交换数据量自动选择 JOIN 算法 [#7084](https://github.com/pingcap/tiflash/issues/7084) @[solotzg](https://github.com/solotzg) +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) - TiFlash MPP模式有多种 JOIN 算法。在 v7.1.0 版本之前,TiDB 根据变量 `tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 以及实际数据量决定 TiFlash MPP 模式是否使用 Broadcast Join 算法。 - - 在 v7.1.0 版本中,TiDB 引入变量 `tidb_prefer_broadcast_join_by_exchange_data_size`,指定 Broadcast Join 代价模型。默认为 `0`,表示使用 v7.1.0 版本之前的评估模型,即和之前的版本功能一致;设定为 `1`,表示使用新的 Broadcast Join 代价模型,即通过网络交换数据量自动判断是否使用 Broadcast Join 算法。 + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 + 更多信息,请参考[用户文档](链接)。 ### 高可用 @@ -61,10 +67,10 @@ TiDB 版本:7.1.0 ### SQL 功能 -* 支持通过 `INSERT INTO SELECT` 语句保存 TiFlash 查询结果 GA [#37515](https://github.com/pingcap/tidb/issues/37515) @[gengliqi](https://github.com/gengliqi) +* 支持通过 `INSERT INTO SELECT` 语句保存 TiFlash 查询结果 GA [#37515](https://github.com/pingcap/tidb/issues/37515) @[gengliqi](https://github.com/gengliqi) **tw:qiancai** 从 v6.5.0 起,TiDB 支持下推 `INSERT INTO SELECT` 语句中的 `SELECT` 子句(分析查询)到 TiFlash,你可以将 TiFlash 的查询结果方便地保存到 `INSERT INTO` 指定的 TiDB 表中供后续分析使用,起到了结果缓存(即结果物化)的效果。 - + 在 v7.1.0 版本中,TiDB 正式将该功能 GA。不同 SQL mode 对于 `INSERT INTO SELECT` 语句的计算有不同要求,而 TiFlash 的计算规则不满足 `STRICT SQL Mode` 要求,因此,TiDB 要求只有当前会话的 SQL Mode 是除 `STRICT_TRANS_TABLES`, `STRICT_ALL_TABLES` 之外的值时,才允许将 `INSERT INTO SELECT` 语句中的查询下推至 TiFlash。同时,在实验特性阶段引入的系统变量 `tidb_enable_tiflash_read_for_write_stmt` 将被移除。TiDB 保持查询结果时,是否将查询下推至 TiFlash,完全根据 SQL Mode 及 TiFlash 副本的代价估算,由优化器自行决定。 更多信息,请参考[用户文档](/tiflash/tiflash-results-materialization.md)。 @@ -93,7 +99,7 @@ TiDB 版本:7.1.0 ### 安全 -* 更换 TiFlash 系统表信息的查询接口 [#6941](https://github.com/pingcap/tiflash/issues/6941) @[flowbehappy](https://github.com/flowbehappy) +* 更换 TiFlash 系统表信息的查询接口 [#6941](https://github.com/pingcap/tiflash/issues/6941) @[flowbehappy](https://github.com/flowbehappy) **tw:qiancai** 在 v7.1.0 之前的版本中,TiFlash 通过 http 服务接口向 TiDB 提供 `information_schema.tiflash_tables` 和 `information_schema.tiflash_segments` 系统表信息查询。但是 http 协议存在安全风险。 @@ -119,6 +125,14 @@ TiDB 版本:7.1.0 * 兼容性 2 +### 行为变更 + +* TiFlash 废弃了 HTTP 服务端口(默认 `8123`)**tw:qiancai** + + 如果你已经将 TiFlash 升级到 v7.1.0,那么在升级 TiDB 到 v7.1.0 的过程中,TiFlash 系统表(`TIFLASH_SEGMENTS` 和 `TIFLASH_TABLES`)不可读。 + +* 行为变更 2 + ### 系统变量 | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | @@ -132,7 +146,7 @@ TiDB 版本:7.1.0 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | -| | | | | +| TiFlash | `http_port` | 删除 | 废弃 TiFlash HTTP 服务端口(默认 `8123`)。| | | | | | | | | | | | | | | | From 853db02e4838ac3ea6fb326b916d10956d8de523 Mon Sep 17 00:00:00 2001 From: Zhigao Tong Date: Tue, 11 Apr 2023 09:25:12 +0800 Subject: [PATCH 04/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index dea668c2e9f1..3e585412d50a 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -39,7 +39,7 @@ TiDB 版本:7.1.0 TiFlash MPP 模式有多种 JOIN 算法。在 v7.1.0 版本之前,TiDB 根据变量 `tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 以及实际数据量决定 TiFlash MPP 模式是否使用 Broadcast Join 算法。 - 在 v7.1.0 版本中,TiDB 引入变量 `tidb_prefer_broadcast_join_by_exchange_data_size`,表示是否基于最小网络数据交换策略来选择 MPP Join 算法。默认为 `ON`,表示启用该功能,`tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 将不再生效;设定为 `OFF`,表示关闭该功能,使用 v7.1.0 版本之前的评估模型,即和之前的版本功能一致; + 在 v7.1.0 版本中,TiDB 引入变量 `tidb_prefer_broadcast_join_by_exchange_data_size`,控制是否基于最小网络数据交换策略选择 MPP Join 算法。默认为 `ON`,表示启用该功能,`tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 将不再生效;设定为 `OFF`,表示关闭该功能,使用 v7.1.0 版本之前的评估模型,即和之前的版本功能一致; 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 From 4dcff206d419d263e9c2ee6d2e0aaa3444f93751 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Tue, 11 Apr 2023 11:51:33 +0800 Subject: [PATCH 05/85] load-based replica read --- releases/release-7.1.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 3e585412d50a..ba48480fa8cb 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -43,6 +43,12 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 +* 自适应副本读来缓解读热点 [#14151](https://github.com/tikv/tikv/issues/14151) @[sticnarf](https://github.com/sticnarf) @[you06](https://github.com/you06) + + 发生读热点场景,其他 TiKV 节点可能仍存在闲置资源,与其在数据主节点持续排队等待,转而从其他节点读取副本可能带来更低的延迟。 TiDB 在新版本开始支持负载自适应副本读,通过 [`tidb_load_based_replica_read_threshold`](/system-variables.md#tidb_load_based_replica_read_threshold) 参数来设置排队时间的临界值,当估算的排队时间超过设定时,TiDB 会尝试从副本节点读取数据。在读热点的情况下,相比于不打散有 70%-200% 的读取吞吐量提升。 + + 更多信息,请参考[用户文档](/distsql-read.md)。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) From 9ff6309c852942425ba04f4d15b03f0a9e1089c7 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Tue, 11 Apr 2023 12:21:52 +0800 Subject: [PATCH 06/85] non-prepared plan cache GA --- releases/release-7.1.0.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index ba48480fa8cb..40cbcb0e31db 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -49,6 +49,16 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/distsql-read.md)。 +* 非 Prepare 语句的执行计划缓存 GA [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) + + TiDB 在 v7.0.0 支持缓存非 Prepare 语句的执行计划,以提升在线交易场景的并发能力。 v7.1.0 持续优化了这个能力,支持更多模式的 SQL 进入缓存,并正式将这个能力 GA 。 + + GA 之后,非 Prepare 与 Prepare SQL 的缓存池合并,以提升内存利用率,缓存大小通过变量 [`tidb_session_plan_cache_size`]() 设置。 原有的变量 [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size) 和 [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) 将被废弃。 + + 为了保持设置向前兼容,对于从低版本升级到 v7.1.0 的客户,缓存池大小 `tidb_session_plan_cache_size` 将会继承 `tidb_prepared_plan_cache_size`的设置,非 Parepare 语句的缓存保持关闭。经过性能测试后,用户可通过 [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 打开。 对于新部署的客户,非 Parepare 语句的缓存则默认打开。 + + 更多信息,请参考[用户文档]()。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) From e20c2d280cd17c72644d70ff2eb52ec2968107bb Mon Sep 17 00:00:00 2001 From: Roger Song Date: Tue, 11 Apr 2023 12:35:06 +0800 Subject: [PATCH 07/85] Multi-Valued Index GA --- releases/release-7.1.0.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 40cbcb0e31db..77cea58aac69 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -91,6 +91,14 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/tiflash/tiflash-results-materialization.md)。 +* MySQL 兼容的多值索引 (Multi-Valued Index) GA [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei) @[qw4990](https://github.com/qw4990) @[YangKeao](https://github.com/YangKeao) + + 过滤 JSON 列中某个数组的值是一个常见的操作,但普通索引起不到加速作用。在数组上创建多值索引能够大幅提升过滤的性能。如果 JSON 列中的某个数组上存在多值索引,那么函数 `MEMBER OF()`、`JSON_CONTAINS()`、`JSON_OVERLAPS()` 的检索条件可以利用多值索引过滤,从而减少大量的 I/O 消耗,提升执行速度。 + + 在 v7.1.0 中, TiDB 多值索引 (Multi-Valued Index) GA,支持更完整的数据类型,并与 TiDB 的工具链兼容。用户可以在生产环境利用“多值索引”加速对 JSON 数组的检索操作。 + + 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引) + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) From dba841431fe2a81510ad4704bffbee78fd964010 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Tue, 11 Apr 2023 15:08:47 +0800 Subject: [PATCH 08/85] Update release-7.1.0.md update partition management --- releases/release-7.1.0.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 77cea58aac69..18a7303d6864 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -89,7 +89,7 @@ TiDB 版本:7.1.0 在 v7.1.0 版本中,TiDB 正式将该功能 GA。不同 SQL mode 对于 `INSERT INTO SELECT` 语句的计算有不同要求,而 TiFlash 的计算规则不满足 `STRICT SQL Mode` 要求,因此,TiDB 要求只有当前会话的 SQL Mode 是除 `STRICT_TRANS_TABLES`, `STRICT_ALL_TABLES` 之外的值时,才允许将 `INSERT INTO SELECT` 语句中的查询下推至 TiFlash。同时,在实验特性阶段引入的系统变量 `tidb_enable_tiflash_read_for_write_stmt` 将被移除。TiDB 保持查询结果时,是否将查询下推至 TiFlash,完全根据 SQL Mode 及 TiFlash 副本的代价估算,由优化器自行决定。 - 更多信息,请参考[用户文档](/tiflash/tiflash-results-materialization.md)。 + 更多信息,请参考[用户文档](/tiflash/tiflash-results-materialization.md)。 * MySQL 兼容的多值索引 (Multi-Valued Index) GA [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei) @[qw4990](https://github.com/qw4990) @[YangKeao](https://github.com/YangKeao) @@ -99,6 +99,12 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引) +* 支持完善的分区管理 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) + + 在 v7.1.0 版本之前,TiDB 支持 `RANGE`、`LIST`、`HASH`、`KEY` 分区以及 `RANGE`、`LIST` 分区的管理功能。从 v7.1.0 版本开始,TiDB 增加对于 `HASH`、`KEY` 分区的 `ADD PARTITION` 和 `COALESCE PARTITION` 管理功能,以及表的分区类型修改(包括 `REMOVING PARTITIONING`、将非分区表修改为分区表、修改分区表的分区类型),完善整体分表的分区管理能力。你可以根据需要,灵活的对表的分区方式进行调整。 + + 更多信息,请参考[用户文档](/partitioned-table.md#)。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) From e062b5e94c24920d0cd99b2e69dbbb7f9f24239c Mon Sep 17 00:00:00 2001 From: Zhigao Tong Date: Tue, 11 Apr 2023 19:23:29 +0800 Subject: [PATCH 09/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 18a7303d6864..811c02949adf 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -39,7 +39,7 @@ TiDB 版本:7.1.0 TiFlash MPP 模式有多种 JOIN 算法。在 v7.1.0 版本之前,TiDB 根据变量 `tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 以及实际数据量决定 TiFlash MPP 模式是否使用 Broadcast Join 算法。 - 在 v7.1.0 版本中,TiDB 引入变量 `tidb_prefer_broadcast_join_by_exchange_data_size`,控制是否基于最小网络数据交换策略选择 MPP Join 算法。默认为 `ON`,表示启用该功能,`tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 将不再生效;设定为 `OFF`,表示关闭该功能,使用 v7.1.0 版本之前的评估模型,即和之前的版本功能一致; + 在 v7.1.0 版本中,TiDB 引入变量 `tidb_prefer_broadcast_join_by_exchange_data_size`,控制是否基于最小网络数据交换策略选择 MPP Join 算法。默认为 `OFF`,表示关闭该功能,使用 v7.1.0 版本之前的评估模型,即和之前的版本功能一致;设定为 `ON`,表示启用该功能,`tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 将不再生效; 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 From 93b0043a7252bad156d2cedec4887878b8609959 Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Wed, 12 Apr 2023 00:58:03 +0800 Subject: [PATCH 10/85] Apply suggestions from code review --- releases/release-7.1.0.md | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 811c02949adf..479d5ba87535 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -26,7 +26,10 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/tiflash/tiflash-disaggregated-and-s3.md)。 ### 性能 +* 下一代 [`Partitioned Raft KV`](../partitioned-raft-kv.md) 存储引擎 GA [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) + TiDB v6.6.0 引入的全新的 TiKV 存储引擎 [`Partitioned Raft KV`](../partitioned-raft-kv.md) 在 TiDB v7.1.0 版本正式 GA。该引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,为每个 Region 提供独立的 RocksDB 实例。此外,该引擎能够更好地管理 RocksDB 实例的文件数和层级,实现 Region 间的数据操作物理隔离,并支持更多数据的平滑扩展。与原 TiKV 存储引擎相比,使用该引擎在相同硬件条件和读写混合场景下,可实现约 2 倍的写入吞吐、3 倍的读取吞吐,并缩短约 4/5 的弹性伸缩时间。该引擎与 TiFlash 引擎兼容,支持 Lightning / BR / TiCDC 等周边工具。该引擎目前仅支持在新集群中使用,暂不支持从原 TiKV 存储引擎直接升级到该引擎。 + 更多信息,请参考[用户文档](../partitioned-raft-kv.md)。 * TiFlash 查询支持延迟物化功能 GA [#5829](https://github.com/pingcap/tiflash/issues/5829) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) **tw:qiancai** 当 `SELECT` 语句中包含过滤条件(`WHERE` 子句)时,TiFlash 默认会先读取该查询所需列的全部数据,然后再根据查询条件对数据进行过滤、聚合等计算任务。延迟物化是一种优化方式,它支持下推部分过滤条件到 TableScan 算子,即先扫描过滤条件相关的列数据,过滤得到符合条件的行后,再扫描这些行的其他列数据,继续后续计算,从而减少 IO 扫描和数据处理的计算量。 @@ -72,7 +75,20 @@ TiDB 版本:7.1.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 +* 支持 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,提升容错性和自动恢复能力 [#issue](https://github.com/pingcap/tidb/issues/issue) @[tangenta](https://github.com/tangenta) + + TiDB v7.1.0 版本引入 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,可以大幅提升 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的容错性和自动恢复能力。即使在 TiDB DDL Owner 切换的情况下,也能够通过周期性记录并同步 DDL 进度,让新的 TiDB DDL Owner 仍能以 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 方式执行切换前的 DDL 语句,无需手动取消和重新执行 DDL 语句,从而让 DDL 执行更加稳定高效。 + + 更多信息,请参考[用户文档](../ddl-introduction.md)。 + +* BR 备份恢复工具支持断点恢复 [#issue](https://github.com/pingcap/tidb/issues/issue) @[Leavrth](https://github.com/Leavrth) + + 如果用户的 TiDB 集群规模较大,之前在进行数据库的快照恢复或日志恢复时,可能会出现一些意外情况导致恢复过程提前结束,例如硬盘空间占满、节点宕机等等。在 TiDB v7.1.0 之前的版本中,这些意外情况会导致之前恢复的进度作废,需要重新进行恢复,给用户带来大量额外成本和麻烦。 + 为了解决这个问题,TiDB v7.1.0 引入了备份恢复的断点恢复功能。该功能可以在意外中断后保留上一次恢复的大部分进度,使得用户能够尽可能地继续上一次的恢复的进度,避免不必要的成本和麻烦。 + + 更多信息,请参考[用户文档](../br/br-checkpoint-restore.md)。 + ### 高可用 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) @@ -118,6 +134,23 @@ TiDB 版本:7.1.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 +* DDL 任务支持暂停和恢复操作 [#issue号](链接) @[godouxm](https://github.com/godouxm) + + TiDB v7.1.0 之前的版本中,当 DDL 任务执行期间遇到业务高峰时间点时,为了减少对业务的影响,用户只能手动取消 DDL 任务。为了减轻 DDL 操作对业务负载的影响,TiDB v7.1.0 引入了 DDL 任务的暂停和恢复操作,用户可以在高峰时间点暂停 DDL 任务,等到业务高峰时间结束后再恢复 DDL 任务,从而避免了对业务的影响。 + + 例如,可以通过如下 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 或 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md) 子句暂停或者恢复多个 DDL 任务: + ```sql + SQL> admin pause ddl jobs 1,2; + + SQL> admin resume ddl jobs 1,2; + ``` + + 更多信息,请参考 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 和 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md)。 + + +* 无需取消 DDL 的平滑集群升级功能 [#issue号](链接) @[zimulala](https://github.com/zimulala) @[hawkingrei](https://github.com/hawkingrei) + + TiDB v7.1.0 之前的版本在升级集群时需要先手动取消正在运行或排队的 DDL 任务,在升级完毕后再手动添加这些任务。为了让用户享受更加平滑的升级体验,TiDB v7.1.0 引入了自动暂停和恢复 DDL 任务的功能。从 v7.1.0 版本开始,用户可以在不需要手动取消 DDL 任务的情况下升级集群。系统会自动暂停正在执行或排队的 DDL 任务,等待整个集群完成滚动升级后再自动恢复这些任务,让用户可以更加轻松地升级 TiDB 集群。 ### 可观测性 @@ -136,7 +169,16 @@ TiDB 版本:7.1.0 从 v7.1.0 版本开始,TiFlash 使用 gRPC 服务接口向 TiDB 提供`information_schema.tiflash_tables` 和 `information_schema.tiflash_segments` 系统表信息查询,避免 http 服务的安全风险。 ### 数据迁移 +* TiCDC 支持 E2E 单行数据正确性校验功能 [#issue号](链接) @[3AceShowHand](https://github.com/3AceShowHand) @[zyguan](https://github.com/zyguan) + + 从 v7.1.0 版本开始,TiCDC 新增了单行数据正确性校验功能,该功能基于 Checksum 算法对单行数据的正确性进行校验。通过该功能可以校验一行数据从 TiDB 写入、经由 TiCDC 流出,再写入到 Kafka 集群的过程中是否发生了数据错误。该功能仅支持下游是 Kafka Sink 的 Changefeed,支持 Canal-JSON / Avro / Open-Protocol 等协议。 + + 更多信息,请参考[用户文档](/ticdc/ticdc-integrity-check.md)。 + +* TiCDC 优化 DDL 同步操作 [#8686](https://github.com/pingcap/tiflow/issues/8686) @[nongfushanquan](https://github.com/nongfushanquan) + 在 v7.1.0 版本之前,当用户在一个大表上运行需要影响所有行的 DDL 操作,例如添加 / 删除列时,TiCDC 的同步延迟会显著增加。从 v7.1.0 版本开始,TiCDC 对于这种情况进行了优化,将同步延迟降低到不到 10 秒,以减轻 DDL 操作对下游延迟的影响。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) From e97c519a3535ec31a259a3c7770ce6b3fc154bc2 Mon Sep 17 00:00:00 2001 From: Frank945946 <108602632+Frank945946@users.noreply.github.com> Date: Wed, 12 Apr 2023 10:09:21 +0800 Subject: [PATCH 11/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 479d5ba87535..506a6f53d7a6 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -176,7 +176,11 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/ticdc/ticdc-integrity-check.md)。 * TiCDC 优化 DDL 同步操作 [#8686](https://github.com/pingcap/tiflow/issues/8686) @[nongfushanquan](https://github.com/nongfushanquan) +* Lightning local backend (physical import mode) 支持在导入数据之前检测冲突的记录,并支持通过 insert ignore 和 replace 解决导入过程中的冲突记录 (实验特性) [#41629](https://github.com/pingcap/tidb/issues/41629) @[gozssky](https://github.com/gozssky) + 在之前的版本使用 Lightning local backend (physical import mode) 导入数据时,当遇到冲突的记录时,无法通过 insert ignore 和 replace 来处理导入过程中的 pk、uk 冲突记录,需要用户自行去重。而本次版本,支持在导入数据之前,检查冲突的记录,并通过 replace 和 insert ignore 的语义来处理 pk、uk 冲突的记录。简化用户的操作,提升处理冲突的性能。 + + 更多信息,请参考[用户文档](链接)。 在 v7.1.0 版本之前,当用户在一个大表上运行需要影响所有行的 DDL 操作,例如添加 / 删除列时,TiCDC 的同步延迟会显著增加。从 v7.1.0 版本开始,TiCDC 对于这种情况进行了优化,将同步延迟降低到不到 10 秒,以减轻 DDL 操作对下游延迟的影响。 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) From 624b0d34d2e8d2a4c334c776040e59eb39685719 Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 12 Apr 2023 11:15:43 +0800 Subject: [PATCH 12/85] Apply suggestions from code review Co-authored-by: Grace Cai Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- releases/release-7.1.0.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 506a6f53d7a6..08c176c46ad2 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -17,11 +17,11 @@ TiDB 版本:7.1.0 ### 可扩展性 -* TiFlash 支持存算分离和对象存储 GA [#6882](https://github.com/pingcap/tiflash/issues/6882) @[flowbehappy](https://github.com/flowbehappy) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw:qiancai** +* TiFlash 支持存算分离和对象存储 (GA) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[flowbehappy](https://github.com/flowbehappy) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw:qiancai** - 在 v7.0.0 版本中,TiFlash 在已有的存算一体架构之外,新增存算分离架构。在此架构下,TiFlash 节点分为 Compute Node (计算节点)和 Write Node(写入节点)两种类型,并支持兼容 S3 API 的对象存储。这两种节点都可以单独扩缩容,独立调整计算或数据存储能力。 + 在 v7.0.0 版本中,TiFlash 在已有的存算一体架构之外,新增存算分离架构。在此架构下,TiFlash 节点分为 Compute Node(计算节点)和 Write Node(写入节点)两种类型,并支持兼容 S3 API 的对象存储。这两种节点都可以单独扩缩容,独立调整计算或数据存储能力。 - 从 v7.1.0 版本开始,TiFlash 存算分离架构 GA。TiFlash 的存算分离架构和存算一体架构不能混合使用、相互转换,需要在部署 TiFlash 时进行相应的配置指定使用其中的一种架构。 + 从 v7.1.0 版本开始,TiFlash 存算分离架构正式 GA。TiFlash 的存算分离架构和存算一体架构不能混合使用、相互转换,需要在部署 TiFlash 时进行相应的配置指定使用其中的一种架构。 更多信息,请参考[用户文档](/tiflash/tiflash-disaggregated-and-s3.md)。 @@ -30,11 +30,11 @@ TiDB 版本:7.1.0 TiDB v6.6.0 引入的全新的 TiKV 存储引擎 [`Partitioned Raft KV`](../partitioned-raft-kv.md) 在 TiDB v7.1.0 版本正式 GA。该引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,为每个 Region 提供独立的 RocksDB 实例。此外,该引擎能够更好地管理 RocksDB 实例的文件数和层级,实现 Region 间的数据操作物理隔离,并支持更多数据的平滑扩展。与原 TiKV 存储引擎相比,使用该引擎在相同硬件条件和读写混合场景下,可实现约 2 倍的写入吞吐、3 倍的读取吞吐,并缩短约 4/5 的弹性伸缩时间。该引擎与 TiFlash 引擎兼容,支持 Lightning / BR / TiCDC 等周边工具。该引擎目前仅支持在新集群中使用,暂不支持从原 TiKV 存储引擎直接升级到该引擎。 更多信息,请参考[用户文档](../partitioned-raft-kv.md)。 -* TiFlash 查询支持延迟物化功能 GA [#5829](https://github.com/pingcap/tiflash/issues/5829) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) **tw:qiancai** +* TiFlash 查询支持延迟物化功能 (GA) [#5829](https://github.com/pingcap/tiflash/issues/5829) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) **tw:qiancai** - 当 `SELECT` 语句中包含过滤条件(`WHERE` 子句)时,TiFlash 默认会先读取该查询所需列的全部数据,然后再根据查询条件对数据进行过滤、聚合等计算任务。延迟物化是一种优化方式,它支持下推部分过滤条件到 TableScan 算子,即先扫描过滤条件相关的列数据,过滤得到符合条件的行后,再扫描这些行的其他列数据,继续后续计算,从而减少 IO 扫描和数据处理的计算量。 + 在 v7.0.0 中,TiFlash 引入了延迟物化实验特性,用于优化查询性能。该特性默认关闭(系统变量 [`tidb_opt_enable_late_materialization`](/system-variables.md#tidb_opt_enable_late_materialization-从-v700-版本开始引入) 默认为 `OFF`)。当 `SELECT` 语句中包含过滤条件(`WHERE` 子句)时,TiFlash 默认会先读取该查询所需列的全部数据,然后再根据查询条件对数据进行过滤、聚合等计算任务。开启该特性后,TiFlash 支持下推部分过滤条件到 TableScan 算子,即先扫描过滤条件相关的列数据,过滤得到符合条件的行后,再扫描这些行的其他列数据,继续后续计算,从而减少 IO 扫描和数据处理的计算量。 - 从 v7.1.0 版本开始,TiFlash 延迟物化功能 GA。在实验特性阶段引入的系统变量 [`tidb_opt_enable_late_materialization`](/system-variables.md#tidb_opt_enable_late_materialization-从-v700-版本开始引入) 的默认值将调整为 `ON` 开启,TiDB 优化器会根据统计信息和查询的过滤条件,决定哪些过滤条件会被下推到 TableScan 算子。 + 从 v7.1.0 开始,TiFlash 延迟物化功能正式 GA,默认开启(系统变量 [`tidb_opt_enable_late_materialization`](/system-variables.md#tidb_opt_enable_late_materialization-从-v700-版本开始引入) 默认为 `ON`),TiDB 优化器会根据统计信息和查询的过滤条件,决定哪些过滤条件会被下推到 TableScan 算子。 更多信息,请参考[用户文档](/tiflash/tiflash-late-materialization.md)。 @@ -99,11 +99,11 @@ TiDB 版本:7.1.0 ### SQL 功能 -* 支持通过 `INSERT INTO SELECT` 语句保存 TiFlash 查询结果 GA [#37515](https://github.com/pingcap/tidb/issues/37515) @[gengliqi](https://github.com/gengliqi) **tw:qiancai** +* 支持通过 `INSERT INTO SELECT` 语句保存 TiFlash 查询结果 (GA) [#37515](https://github.com/pingcap/tidb/issues/37515) @[gengliqi](https://github.com/gengliqi) **tw:qiancai** 从 v6.5.0 起,TiDB 支持下推 `INSERT INTO SELECT` 语句中的 `SELECT` 子句(分析查询)到 TiFlash,你可以将 TiFlash 的查询结果方便地保存到 `INSERT INTO` 指定的 TiDB 表中供后续分析使用,起到了结果缓存(即结果物化)的效果。 - 在 v7.1.0 版本中,TiDB 正式将该功能 GA。不同 SQL mode 对于 `INSERT INTO SELECT` 语句的计算有不同要求,而 TiFlash 的计算规则不满足 `STRICT SQL Mode` 要求,因此,TiDB 要求只有当前会话的 SQL Mode 是除 `STRICT_TRANS_TABLES`, `STRICT_ALL_TABLES` 之外的值时,才允许将 `INSERT INTO SELECT` 语句中的查询下推至 TiFlash。同时,在实验特性阶段引入的系统变量 `tidb_enable_tiflash_read_for_write_stmt` 将被移除。TiDB 保持查询结果时,是否将查询下推至 TiFlash,完全根据 SQL Mode 及 TiFlash 副本的代价估算,由优化器自行决定。 + 在 v7.1.0 版本中,该功能正式 GA。当 TiDB 执行 `INSERT INTO SELECT` 语句中的 `SELECT` 子句时,优化器将根据 SQL Mode 及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。因此,在实验特性阶段引入的系统变量 `tidb_enable_tiflash_read_for_write_stmt` 将被移除。需要注意的是,TiFlash 对于 `INSERT INTO SELECT` 语句的计算规则不满足 `STRICT SQL Mode` 要求,因此只有当前会话的 SQL Mode 是除 `STRICT_TRANS_TABLES`, `STRICT_ALL_TABLES` 之外的值时,TiDB 才允许将 `INSERT INTO SELECT` 语句中的查询下推至 TiFlash。 更多信息,请参考[用户文档](/tiflash/tiflash-results-materialization.md)。 @@ -164,11 +164,10 @@ TiDB 版本:7.1.0 * 更换 TiFlash 系统表信息的查询接口 [#6941](https://github.com/pingcap/tiflash/issues/6941) @[flowbehappy](https://github.com/flowbehappy) **tw:qiancai** - 在 v7.1.0 之前的版本中,TiFlash 通过 http 服务接口向 TiDB 提供 `information_schema.tiflash_tables` 和 `information_schema.tiflash_segments` 系统表信息查询。但是 http 协议存在安全风险。 - - 从 v7.1.0 版本开始,TiFlash 使用 gRPC 服务接口向 TiDB 提供`information_schema.tiflash_tables` 和 `information_schema.tiflash_segments` 系统表信息查询,避免 http 服务的安全风险。 + 从 v7.1.0 起,TiFlash 在向 TiDB 提供 [`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md) 系统表查询服务的端口时,不再使用 HTTP 端口,而是使用 gRPC 端口,从而避免 HTTP 服务的安全风险。 ### 数据迁移 + * TiCDC 支持 E2E 单行数据正确性校验功能 [#issue号](链接) @[3AceShowHand](https://github.com/3AceShowHand) @[zyguan](https://github.com/zyguan) 从 v7.1.0 版本开始,TiCDC 新增了单行数据正确性校验功能,该功能基于 Checksum 算法对单行数据的正确性进行校验。通过该功能可以校验一行数据从 TiDB 写入、经由 TiCDC 流出,再写入到 Kafka 集群的过程中是否发生了数据错误。该功能仅支持下游是 Kafka Sink 的 Changefeed,支持 Canal-JSON / Avro / Open-Protocol 等协议。 @@ -203,9 +202,9 @@ TiDB 版本:7.1.0 ### 行为变更 -* TiFlash 废弃了 HTTP 服务端口(默认 `8123`)**tw:qiancai** +* 为了提高安全性,TiFlash 废弃了 HTTP 服务端口(默认 `8123`),采用 gRPC 端口作为替代 ** tw:qiancai** - 如果你已经将 TiFlash 升级到 v7.1.0,那么在升级 TiDB 到 v7.1.0 的过程中,TiFlash 系统表(`TIFLASH_SEGMENTS` 和 `TIFLASH_TABLES`)不可读。 + 如果你已经将 TiFlash 升级到 v7.1.0,那么在升级 TiDB 到 v7.1.0 的过程中,TiFlash 系统表([`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md))不可读。 * 行为变更 2 From 36a9b9ebc60408b3d2bd102358751ffe938afb3b Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 12 Apr 2023 14:56:13 +0800 Subject: [PATCH 13/85] Update releases/release-7.1.0.md Co-authored-by: Aolin --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 08c176c46ad2..bade608739e1 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -115,7 +115,7 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引) -* 支持完善的分区管理 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) +* 支持完善的分区管理 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) **tw:qiancai** 在 v7.1.0 版本之前,TiDB 支持 `RANGE`、`LIST`、`HASH`、`KEY` 分区以及 `RANGE`、`LIST` 分区的管理功能。从 v7.1.0 版本开始,TiDB 增加对于 `HASH`、`KEY` 分区的 `ADD PARTITION` 和 `COALESCE PARTITION` 管理功能,以及表的分区类型修改(包括 `REMOVING PARTITIONING`、将非分区表修改为分区表、修改分区表的分区类型),完善整体分表的分区管理能力。你可以根据需要,灵活的对表的分区方式进行调整。 From 152072d0062b078f954c88c45de1e083326b61b5 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 12 Apr 2023 21:04:14 +0800 Subject: [PATCH 14/85] reduce memory used by initial loading --- releases/release-7.1.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index bade608739e1..3613230a1cda 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -88,6 +88,12 @@ TiDB 版本:7.1.0 为了解决这个问题,TiDB v7.1.0 引入了备份恢复的断点恢复功能。该功能可以在意外中断后保留上一次恢复的大部分进度,使得用户能够尽可能地继续上一次的恢复的进度,避免不必要的成本和麻烦。 更多信息,请参考[用户文档](../br/br-checkpoint-restore.md)。 + +* 统计信息缓存加载策略优化 [#issue](https://github.com/pingcap/tidb/issues/issue) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) + + 在开启[统计信息同步加载](/statistics.md#统计信息的加载)的前提下, TiDB 大幅减少了启动时必须载入的统计信息的数量,并且在加载完成前不接受用户连接。 一方面提升了启动时统计信息的加载速度,另一方面,避免了在启动初始阶段由于统计信息不全而引起的性能回退。 提升了 TiDB 在复杂运行环境下的稳定性,降低了个别 TiDB 节点重启对整体服务的影响。 + + 更多信息,请参考[用户文档]()。 ### 高可用 From a584c066361d6c7eb73280627e61c54314672a47 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 12 Apr 2023 21:18:21 +0800 Subject: [PATCH 15/85] skip useless on table analyzing --- releases/release-7.1.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 3613230a1cda..0c2f483bb94d 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -94,6 +94,10 @@ TiDB 版本:7.1.0 在开启[统计信息同步加载](/statistics.md#统计信息的加载)的前提下, TiDB 大幅减少了启动时必须载入的统计信息的数量,并且在加载完成前不接受用户连接。 一方面提升了启动时统计信息的加载速度,另一方面,避免了在启动初始阶段由于统计信息不全而引起的性能回退。 提升了 TiDB 在复杂运行环境下的稳定性,降低了个别 TiDB 节点重启对整体服务的影响。 更多信息,请参考[用户文档]()。 + +* 优化统计信息收集的对象 [#issue](https://github.com/pingcap/tidb/issues/issue) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) + + 在 v7.1.0 中, TiDB 在收集优化器统计信息时,将会忽略一部分特殊的组件和列类型,从而加快了统计信息收集的速度,减少统计信息收集所消耗的系统资源。 在一些特定场景,避免了统计信息收集造成的系统稳定性问题。 ### 高可用 From 0c8cce9c6a401c607fa6ebaf916a07655c9e87a8 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Wed, 12 Apr 2023 21:48:46 +0800 Subject: [PATCH 16/85] resource control GA --- releases/release-7.1.0.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 0c2f483bb94d..a6be8fc53299 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -75,6 +75,17 @@ TiDB 版本:7.1.0 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) 更多信息,请参考[用户文档](链接)。 + +* 资源管控 GA [#38825](https://github.com/pingcap/tidb/issues/38825) @[nolouch](https://github.com/nolouch) @[BornChanger](https://github.com/BornChanger) @[glorv](https://github.com/glorv) @[tiancaiamao](https://github.com/tiancaiamao) @[Connor1996](https://github.com/Connor1996) @[JmPotato](https://github.com/JmPotato) @[hnes](https://github.com/hnes) @[CabinfeverB](https://github.com/CabinfeverB) @[HuSharp](https://github.com/HuSharp) + + TiDB 持续增强资源管控能力,并将这个特性 GA。该特性将会极大地提升 TiDB 集群的资源利用效率和性能表现。资源管控特性的引入对 TiDB 具有里程碑的意义,你可以将一个分布式数据库集群划分成多个逻辑单元,将不同的数据库用户映射到对应的资源组中,并根据需要设置每个资源组的配额。当集群资源紧张时,来自同一个资源组的会话所使用的全部资源将被限制在配额内,避免其中一个资源组过度消耗,从而影响其他资源组中的会话正常运行。 + + 该特性也可以将多个来自不同系统的中小型应用合入一个 TiDB 集群中,个别应用的负载提升,不会影响其他应用的正常运行。而在系统负载较低的时候,繁忙的应用即使超过设定的读写配额,也仍然可以被分配到所需的系统资源,达到资源的最大化利用。此外,合理利用资源管控特性可以减少集群数量,降低运维难度及管理成本。 + + 在 v7.1.0 中, TiDB 增加了基于实际负载来估算系统容量上限的能力,为客户的容量规划提供了更准确的参考,协助客户更好地管理 TiDB 的资源分配,从而满足企业级场景的稳定性需要。 + + 更多信息,请参考[用户文档](/tidb-resource-control.md)。 + * 支持 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,提升容错性和自动恢复能力 [#issue](https://github.com/pingcap/tidb/issues/issue) @[tangenta](https://github.com/tangenta) TiDB v7.1.0 版本引入 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,可以大幅提升 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的容错性和自动恢复能力。即使在 TiDB DDL Owner 切换的情况下,也能够通过周期性记录并同步 DDL 进度,让新的 TiDB DDL Owner 仍能以 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 方式执行切换前的 DDL 语句,无需手动取消和重新执行 DDL 语句,从而让 DDL 执行更加稳定高效。 From ef5009efbbbfc0d628e4bfa69eab86bb9c7f94fa Mon Sep 17 00:00:00 2001 From: Zhigao Tong Date: Thu, 13 Apr 2023 09:39:31 +0800 Subject: [PATCH 17/85] Update releases/release-7.1.0.md Co-authored-by: Grace Cai --- releases/release-7.1.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index a6be8fc53299..e0add870730d 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -38,11 +38,11 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/tiflash/tiflash-late-materialization.md)。 -* TiFlash MPP 模式根据网络交换数据量自动选择 JOIN 算法 [#7084](https://github.com/pingcap/tiflash/issues/7084) @[solotzg](https://github.com/solotzg) **tw:qiancai** +* TiFlash 支持根据网络交换数据量自动选择 MPP 模式的 Join 算法 [#7084](https://github.com/pingcap/tiflash/issues/7084) @[solotzg](https://github.com/solotzg) **tw:qiancai** - TiFlash MPP 模式有多种 JOIN 算法。在 v7.1.0 版本之前,TiDB 根据变量 `tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 以及实际数据量决定 TiFlash MPP 模式是否使用 Broadcast Join 算法。 + TiFlash MPP 模式有多种 Join 算法。在 v7.1.0 之前的版本中,TiDB 根据变量 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 以及实际数据量决定 TiFlash MPP 模式是否使用 Broadcast Hash Join 算法。 - 在 v7.1.0 版本中,TiDB 引入变量 `tidb_prefer_broadcast_join_by_exchange_data_size`,控制是否基于最小网络数据交换策略选择 MPP Join 算法。默认为 `OFF`,表示关闭该功能,使用 v7.1.0 版本之前的评估模型,即和之前的版本功能一致;设定为 `ON`,表示启用该功能,`tidb_broadcast_join_threshold_count` 和 `tidb_broadcast_join_threshold_size` 将不再生效; + 在 v7.1.0 中,TiDB 引入变量 [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v71-版本开始引入),控制是否基于最小网络数据交换策略选择 MPP Join 算法。该变量默认关闭,表示默认保持 v7.1.0 之前的算法选择策略。如需开启,请设置该变量为 `ON`。开启后,[`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 From 5dafdd2eb70c39b92d275ee12e652628bb8ec17c Mon Sep 17 00:00:00 2001 From: Zhigao Tong Date: Thu, 13 Apr 2023 09:54:17 +0800 Subject: [PATCH 18/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index e0add870730d..4f416e2cfc8c 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -42,7 +42,7 @@ TiDB 版本:7.1.0 TiFlash MPP 模式有多种 Join 算法。在 v7.1.0 之前的版本中,TiDB 根据变量 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 以及实际数据量决定 TiFlash MPP 模式是否使用 Broadcast Hash Join 算法。 - 在 v7.1.0 中,TiDB 引入变量 [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v71-版本开始引入),控制是否基于最小网络数据交换策略选择 MPP Join 算法。该变量默认关闭,表示默认保持 v7.1.0 之前的算法选择策略。如需开启,请设置该变量为 `ON`。开启后,[`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 + 在 v7.1.0 中,TiDB 引入变量 [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v71-版本开始引入),控制是否基于最小网络数据交换策略选择 MPP Join 算法。该变量默认关闭,表示默认保持 v7.1.0 之前的算法选择策略。如需开启,请设置该变量为 `ON`,TiDB 会自动估算并考虑多种 Join 算法所需进行网络交换的数据量,然后选择综合开销较小的算法,从而减少网络流量,提升 MPP 查询性能。开启后,[`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 From c4497e1a07ea4ef7dd0717ce56b0a4e5a5988c6e Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 13 Apr 2023 15:57:39 +0800 Subject: [PATCH 19/85] Plan Diagnosis Enhancement --- releases/release-7.1.0.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 4f416e2cfc8c..e41a7fccbe89 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -181,6 +181,16 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](链接)。 +* 增加优化器诊断信息 [#issue号](链接) @[time-and-fate](https://github.com/time-and-fate) + + 获取充足的信息是 SQL 性能诊断的关键,在 v7.1.0 中,TiDB 持续向各种诊断工具中添加优化器运行信息,可以更好地解释执行计划如何被选择,协助用户和技术支持对 SQL 性能问题进行定位。其中包括: + + * [`PLAN REPLAYER`](/sql-plan-replayer.md#使用-plan-replayer-保存和恢复集群现场信息) 的输出中增加 `debug_trace.json` 文件。 + * [`EXPLAIN`](/explain-walkthrough.md) 的输出中,为 `operator info` 添加部分统计信息详情。 + * 为[`慢日志`](/identify-slow-queries.md)的 `Stats` 字段添加部分统计信息详情。 + + 更多信息,请参考 [使用 `PLAN REPLAYER` 保存和恢复集群线程信息](/sql-plan-replayer.md#使用-plan-replayer-保存和恢复集群现场信息),[使用 `EXPLAIN` 解读执行计划](/explain-walkthrough.md) 和 [`慢日志查询`](/identify-slow-queries.md) 。 + ### 安全 * 更换 TiFlash 系统表信息的查询接口 [#6941](https://github.com/pingcap/tiflash/issues/6941) @[flowbehappy](https://github.com/flowbehappy) **tw:qiancai** From b163befc5b9b553d7782b818626e247f6be52c27 Mon Sep 17 00:00:00 2001 From: Roger Song Date: Thu, 13 Apr 2023 18:36:50 +0800 Subject: [PATCH 20/85] Generated Columns GA --- releases/release-7.1.0.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index e41a7fccbe89..1599dfa26624 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -142,6 +142,14 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/partitioned-table.md#)。 +* 生成列 (Generated Columns) GA [#issue号](链接) @[bb7133](https://github.com/bb7133) + + 生成列 (Generated Columns) 是 MySQL 数据库很有价值的一个功能。 在创建表时定义一列的值由表中其他列的值计算而来,而不是由用户显式插入或更新, 它可以是虚拟列 (Virtual Column) 或存储列(Stored Column)。 TiDB 在早期版本就提供了 MySQL 兼容的生成列,在 v7.1.0 中将这个功能 GA。 + + 生成列提升了 TiDB 对 MySQL 的兼容性,方便用户从 MySQL 平滑迁移,同时也简化数据维护的复杂度、增强数据的一致性、提高查询效率。 + + 更多信息,请参考[用户文档](/generated-columns.md)。 + * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) From c2be1cadd33ca92de053e62627396c8f2fba2c51 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 13 Apr 2023 21:36:13 +0800 Subject: [PATCH 21/85] add new features Co-authored-by: Grace Cai Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> Co-authored-by: xixirangrang --- releases/release-7.1.0.md | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 1599dfa26624..8c59924ab855 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -138,10 +138,33 @@ TiDB 版本:7.1.0 * 支持完善的分区管理 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) **tw:qiancai** - 在 v7.1.0 版本之前,TiDB 支持 `RANGE`、`LIST`、`HASH`、`KEY` 分区以及 `RANGE`、`LIST` 分区的管理功能。从 v7.1.0 版本开始,TiDB 增加对于 `HASH`、`KEY` 分区的 `ADD PARTITION` 和 `COALESCE PARTITION` 管理功能,以及表的分区类型修改(包括 `REMOVING PARTITIONING`、将非分区表修改为分区表、修改分区表的分区类型),完善整体分表的分区管理能力。你可以根据需要,灵活的对表的分区方式进行调整。 + 在 v7.1.0 版本之前,TiDB 支持的分区类型包括 `RANGE`、`LIST`、`HASH`、`KEY` ,其中 `RANGE` 和 `LIST` 分区支持分区管理功能。从 v7.1.0 版本开始,TiDB 新增 `HASH` 和 `KEY` 分区的 `ADD PARTITION` 和 `COALESCE PARTITION` 管理功能,并支持修改分区表类型(包括分区表和非分表之间的相互转换、不同分区类型之间的修改),整体完善了分表表的分区管理能力。你可以根据需要,灵活地对表的分区方式进行调整。 更多信息,请参考[用户文档](/partitioned-table.md#)。 +* `LOAD DATA` SQL 支持从 S3、GCS 导入数据,支持任务管理等功能 GA [#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** + 以下 `LOAD DATA` 新增的功能在 7.1 版本 GA: + - 支持从 S3、GCS 导入数据 + - 支持导入 Parquet 文件数据 + - 支持解析源文件中 ascii、latin1、binary、gbk、utf8mbd 字符集 + - 支持设置 FIELDS DEFINED NULL BY 将源文件的指定的值转换为 Null 写入目标表。 + - 支持设置一个 bath_size 即 1 个 batch 插入到目标表的行数,提升写入性能。 + - 支持设置 detached,允许该 job 在后台运行。 + - 支持 show load data jobs, show load data jobid, drop load data jobid 来管理任务。 + + 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/13344)。 + +* `LOAD DATA` SQL 集成 Lighting local backend(physical import mode) 的导入功能,提升导入性能(实验特性) [#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** + + 用户通过 `LOAD DATA` SQL 导入数据时,可以指定 import_mode = physical 来实现 Lightning local backend (physical 导入模式)的导入效果,相比 Load data 原先的 logical 导入模式,可成倍提升导入数据的性能。 + + 更多信息,请参考[用户文档](链接)。 + +* `LOAD DATA` SQL 支持并行导入,提升导入性能(实验特性)[#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** + + 原先 load data sql 无法并行导入数据,性能较差。在该版本中支持设置并行导入的参数,通过提升并发,来提升导入的性能。 在实验室环境,相比上个版本,测试逻辑导入性能有接近 4 倍的提升。 + + 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/13676)。 * 生成列 (Generated Columns) GA [#issue号](链接) @[bb7133](https://github.com/bb7133) 生成列 (Generated Columns) 是 MySQL 数据库很有价值的一个功能。 在创建表时定义一列的值由表中其他列的值计算而来,而不是由用户显式插入或更新, 它可以是虚拟列 (Virtual Column) 或存储列(Stored Column)。 TiDB 在早期版本就提供了 MySQL 兼容的生成列,在 v7.1.0 中将这个功能 GA。 @@ -213,13 +236,17 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/ticdc/ticdc-integrity-check.md)。 -* TiCDC 优化 DDL 同步操作 [#8686](https://github.com/pingcap/tiflow/issues/8686) @[nongfushanquan](https://github.com/nongfushanquan) -* Lightning local backend (physical import mode) 支持在导入数据之前检测冲突的记录,并支持通过 insert ignore 和 replace 解决导入过程中的冲突记录 (实验特性) [#41629](https://github.com/pingcap/tidb/issues/41629) @[gozssky](https://github.com/gozssky) +* TiCDC 优化 DDL 同步操作 [#8686](https://github.com/pingcap/tiflow/issues/8686) @[nongfushanquan](https://github.com/nongfushanquan) **tw:ran-huang** - 在之前的版本使用 Lightning local backend (physical import mode) 导入数据时,当遇到冲突的记录时,无法通过 insert ignore 和 replace 来处理导入过程中的 pk、uk 冲突记录,需要用户自行去重。而本次版本,支持在导入数据之前,检查冲突的记录,并通过 replace 和 insert ignore 的语义来处理 pk、uk 冲突的记录。简化用户的操作,提升处理冲突的性能。 + 在 v7.1.0 版本之前,当用户在一个大表上运行需要影响所有行的 DDL 操作,例如添加 / 删除列时,TiCDC 的同步延迟会显著增加。从 v7.1.0 版本开始,TiCDC 对于这种情况进行了优化,将同步延迟降低到不到 10 秒,以减轻 DDL 操作对下游延迟的影响。 + + 更多信息,请参考[用户文档](链接)。 + +* Lightning local backend (physical import mode) 支持在导入数据之前检测冲突的记录,并支持通过 insert ignore 和 replace 解决导入过程中的冲突记录 (实验特性) [#41629](https://github.com/pingcap/tidb/issues/41629) @[gozssky](https://github.com/gozssky) **tw:hfxsd** + + 在之前的版本使用 Lightning local backend (physical import mode) 导入数据时,当遇到冲突的记录时,无法通过 insert ignore 和 replace 来处理导入过程中的 pk、uk 冲突记录,需要用户自行去重。而本次版本,支持在导入数据之前,检查冲突的记录,并通过 replace 和 insert ignore 的语义来处理 pk、uk 冲突的记录。简化用户的操作,提升处理冲突的性能。 更多信息,请参考[用户文档](链接)。 - 在 v7.1.0 版本之前,当用户在一个大表上运行需要影响所有行的 DDL 操作,例如添加 / 删除列时,TiCDC 的同步延迟会显著增加。从 v7.1.0 版本开始,TiCDC 对于这种情况进行了优化,将同步延迟降低到不到 10 秒,以减轻 DDL 操作对下游延迟的影响。 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) From d6d953ab7c00393040722f2f196f80cca5766512 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 13 Apr 2023 21:54:05 +0800 Subject: [PATCH 22/85] fix format and add tw id Signed-off-by: Aolin --- releases/release-7.1.0.md | 155 ++++++++++++++++---------------------- 1 file changed, 67 insertions(+), 88 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 8c59924ab855..9a2e76e3f25a 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -15,6 +15,12 @@ TiDB 版本:7.1.0 ## 功能详情 +* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) + + 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + + 更多信息,请参考[用户文档](链接)。 + ### 可扩展性 * TiFlash 支持存算分离和对象存储 (GA) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[flowbehappy](https://github.com/flowbehappy) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw:qiancai** @@ -26,10 +32,13 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/tiflash/tiflash-disaggregated-and-s3.md)。 ### 性能 -* 下一代 [`Partitioned Raft KV`](../partitioned-raft-kv.md) 存储引擎 GA [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) - TiDB v6.6.0 引入的全新的 TiKV 存储引擎 [`Partitioned Raft KV`](../partitioned-raft-kv.md) 在 TiDB v7.1.0 版本正式 GA。该引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,为每个 Region 提供独立的 RocksDB 实例。此外,该引擎能够更好地管理 RocksDB 实例的文件数和层级,实现 Region 间的数据操作物理隔离,并支持更多数据的平滑扩展。与原 TiKV 存储引擎相比,使用该引擎在相同硬件条件和读写混合场景下,可实现约 2 倍的写入吞吐、3 倍的读取吞吐,并缩短约 4/5 的弹性伸缩时间。该引擎与 TiFlash 引擎兼容,支持 Lightning / BR / TiCDC 等周边工具。该引擎目前仅支持在新集群中使用,暂不支持从原 TiKV 存储引擎直接升级到该引擎。 - 更多信息,请参考[用户文档](../partitioned-raft-kv.md)。 +* 下一代 [`Partitioned Raft KV`](/partitioned-raft-kv.md) 存储引擎 GA [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw:Oreoxmt** + + TiDB v6.6.0 引入的全新的 TiKV 存储引擎 [`Partitioned Raft KV`](/partitioned-raft-kv.md) 在 TiDB v7.1.0 版本正式 GA。该引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,为每个 Region 提供独立的 RocksDB 实例。此外,该引擎能够更好地管理 RocksDB 实例的文件数和层级,实现 Region 间的数据操作物理隔离,并支持更多数据的平滑扩展。与原 TiKV 存储引擎相比,使用该引擎在相同硬件条件和读写混合场景下,可实现约 2 倍的写入吞吐、3 倍的读取吞吐,并缩短约 4/5 的弹性伸缩时间。该引擎与 TiFlash 引擎兼容,支持 Lightning / BR / TiCDC 等周边工具。该引擎目前仅支持在新集群中使用,暂不支持从原 TiKV 存储引擎直接升级到该引擎。 + + 更多信息,请参考[用户文档](/partitioned-raft-kv.md)。 + * TiFlash 查询支持延迟物化功能 (GA) [#5829](https://github.com/pingcap/tiflash/issues/5829) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) **tw:qiancai** 在 v7.0.0 中,TiFlash 引入了延迟物化实验特性,用于优化查询性能。该特性默认关闭(系统变量 [`tidb_opt_enable_late_materialization`](/system-variables.md#tidb_opt_enable_late_materialization-从-v700-版本开始引入) 默认为 `OFF`)。当 `SELECT` 语句中包含过滤条件(`WHERE` 子句)时,TiFlash 默认会先读取该查询所需列的全部数据,然后再根据查询条件对数据进行过滤、聚合等计算任务。开启该特性后,TiFlash 支持下推部分过滤条件到 TableScan 算子,即先扫描过滤条件相关的列数据,过滤得到符合条件的行后,再扫描这些行的其他列数据,继续后续计算,从而减少 IO 扫描和数据处理的计算量。 @@ -42,74 +51,64 @@ TiDB 版本:7.1.0 TiFlash MPP 模式有多种 Join 算法。在 v7.1.0 之前的版本中,TiDB 根据变量 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 以及实际数据量决定 TiFlash MPP 模式是否使用 Broadcast Hash Join 算法。 - 在 v7.1.0 中,TiDB 引入变量 [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v71-版本开始引入),控制是否基于最小网络数据交换策略选择 MPP Join 算法。该变量默认关闭,表示默认保持 v7.1.0 之前的算法选择策略。如需开启,请设置该变量为 `ON`,TiDB 会自动估算并考虑多种 Join 算法所需进行网络交换的数据量,然后选择综合开销较小的算法,从而减少网络流量,提升 MPP 查询性能。开启后,[`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 + 在 v7.1.0 中,TiDB 引入变量 [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入),控制是否基于最小网络数据交换策略选择 MPP Join 算法。该变量默认关闭,表示默认保持 v7.1.0 之前的算法选择策略。如需开启,请设置该变量为 `ON`,TiDB 会自动估算并考虑多种 Join 算法所需进行网络交换的数据量,然后选择综合开销较小的算法,从而减少网络流量,提升 MPP 查询性能。开启后,[`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 -* 自适应副本读来缓解读热点 [#14151](https://github.com/tikv/tikv/issues/14151) @[sticnarf](https://github.com/sticnarf) @[you06](https://github.com/you06) - - 发生读热点场景,其他 TiKV 节点可能仍存在闲置资源,与其在数据主节点持续排队等待,转而从其他节点读取副本可能带来更低的延迟。 TiDB 在新版本开始支持负载自适应副本读,通过 [`tidb_load_based_replica_read_threshold`](/system-variables.md#tidb_load_based_replica_read_threshold) 参数来设置排队时间的临界值,当估算的排队时间超过设定时,TiDB 会尝试从副本节点读取数据。在读热点的情况下,相比于不打散有 70%-200% 的读取吞吐量提升。 +* 自适应副本读来缓解读热点 [#14151](https://github.com/tikv/tikv/issues/14151) @[sticnarf](https://github.com/sticnarf) @[you06](https://github.com/you06) **tw:Oreoxmt** - 更多信息,请参考[用户文档](/distsql-read.md)。 + 发生读热点场景,其他 TiKV 节点可能仍存在闲置资源,与其在数据主节点持续排队等待,转而从其他节点读取副本可能带来更低的延迟。TiDB 在新版本开始支持负载自适应副本读,通过 [`tidb_load_based_replica_read_threshold`](/system-variables.md#tidb_load_based_replica_read_threshold-从-v700-版本开始引入) 参数来设置排队时间的临界值,当估算的排队时间超过设定时,TiDB 会尝试从副本节点读取数据。在读热点的情况下,相比于不打散有 70%-200% 的读取吞吐量提升。 -* 非 Prepare 语句的执行计划缓存 GA [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) + 更多信息,请参考[用户文档](/troubleshoot-hot-spot-issues.md#打散读热点)。 - TiDB 在 v7.0.0 支持缓存非 Prepare 语句的执行计划,以提升在线交易场景的并发能力。 v7.1.0 持续优化了这个能力,支持更多模式的 SQL 进入缓存,并正式将这个能力 GA 。 +* 非 Prepare 语句的执行计划缓存 GA [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) **tw:Oreoxmt** - GA 之后,非 Prepare 与 Prepare SQL 的缓存池合并,以提升内存利用率,缓存大小通过变量 [`tidb_session_plan_cache_size`]() 设置。 原有的变量 [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size) 和 [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) 将被废弃。 + TiDB 在 v7.0.0 支持缓存非 Prepare 语句的执行计划,以提升在线交易场景的并发能力。v7.1.0 持续优化了这个能力,支持更多模式的 SQL 进入缓存,并正式将这个能力 GA。 - 为了保持设置向前兼容,对于从低版本升级到 v7.1.0 的客户,缓存池大小 `tidb_session_plan_cache_size` 将会继承 `tidb_prepared_plan_cache_size`的设置,非 Parepare 语句的缓存保持关闭。经过性能测试后,用户可通过 [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 打开。 对于新部署的客户,非 Parepare 语句的缓存则默认打开。 + GA 之后,非 Prepare 与 Prepare SQL 的缓存池合并,以提升内存利用率,缓存大小通过变量 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size) 设置。原有的变量 [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size) 和 [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) 将被废弃。 - 更多信息,请参考[用户文档]()。 + 为了保持设置向前兼容,对于从低版本升级到 v7.1.0 的客户,缓存池大小 `tidb_session_plan_cache_size` 将会继承 `tidb_prepared_plan_cache_size`的设置,非 Parepare 语句的缓存保持关闭。经过性能测试后,用户可通过 [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 打开。对于新部署的客户,非 Parepare 语句的缓存则默认打开。 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/sql-non-prepared-plan-cache.md)。 ### 稳定性 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - -* 资源管控 GA [#38825](https://github.com/pingcap/tidb/issues/38825) @[nolouch](https://github.com/nolouch) @[BornChanger](https://github.com/BornChanger) @[glorv](https://github.com/glorv) @[tiancaiamao](https://github.com/tiancaiamao) @[Connor1996](https://github.com/Connor1996) @[JmPotato](https://github.com/JmPotato) @[hnes](https://github.com/hnes) @[CabinfeverB](https://github.com/CabinfeverB) @[HuSharp](https://github.com/HuSharp) +* 资源管控 GA [#38825](https://github.com/pingcap/tidb/issues/38825) @[nolouch](https://github.com/nolouch) @[BornChanger](https://github.com/BornChanger) @[glorv](https://github.com/glorv) @[tiancaiamao](https://github.com/tiancaiamao) @[Connor1996](https://github.com/Connor1996) @[JmPotato](https://github.com/JmPotato) @[hnes](https://github.com/hnes) @[CabinfeverB](https://github.com/CabinfeverB) @[HuSharp](https://github.com/HuSharp) **tw:hfxsd** TiDB 持续增强资源管控能力,并将这个特性 GA。该特性将会极大地提升 TiDB 集群的资源利用效率和性能表现。资源管控特性的引入对 TiDB 具有里程碑的意义,你可以将一个分布式数据库集群划分成多个逻辑单元,将不同的数据库用户映射到对应的资源组中,并根据需要设置每个资源组的配额。当集群资源紧张时,来自同一个资源组的会话所使用的全部资源将被限制在配额内,避免其中一个资源组过度消耗,从而影响其他资源组中的会话正常运行。 该特性也可以将多个来自不同系统的中小型应用合入一个 TiDB 集群中,个别应用的负载提升,不会影响其他应用的正常运行。而在系统负载较低的时候,繁忙的应用即使超过设定的读写配额,也仍然可以被分配到所需的系统资源,达到资源的最大化利用。此外,合理利用资源管控特性可以减少集群数量,降低运维难度及管理成本。 - 在 v7.1.0 中, TiDB 增加了基于实际负载来估算系统容量上限的能力,为客户的容量规划提供了更准确的参考,协助客户更好地管理 TiDB 的资源分配,从而满足企业级场景的稳定性需要。 + 在 v7.1.0 中,TiDB 增加了基于实际负载来估算系统容量上限的能力,为客户的容量规划提供了更准确的参考,协助客户更好地管理 TiDB 的资源分配,从而满足企业级场景的稳定性需要。 更多信息,请参考[用户文档](/tidb-resource-control.md)。 -* 支持 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,提升容错性和自动恢复能力 [#issue](https://github.com/pingcap/tidb/issues/issue) @[tangenta](https://github.com/tangenta) - - TiDB v7.1.0 版本引入 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,可以大幅提升 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的容错性和自动恢复能力。即使在 TiDB DDL Owner 切换的情况下,也能够通过周期性记录并同步 DDL 进度,让新的 TiDB DDL Owner 仍能以 [Fast Online DDL](../system-variables.md###tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 方式执行切换前的 DDL 语句,无需手动取消和重新执行 DDL 语句,从而让 DDL 执行更加稳定高效。 - - 更多信息,请参考[用户文档](../ddl-introduction.md)。 +* 支持 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,提升容错性和自动恢复能力 [#issue](https://github.com/pingcap/tidb/issues/issue) @[tangenta](https://github.com/tangenta) **tw:ran-huang** + + TiDB v7.1.0 版本引入 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,可以大幅提升 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的容错性和自动恢复能力。即使在 TiDB DDL Owner 切换的情况下,也能够通过周期性记录并同步 DDL 进度,让新的 TiDB DDL Owner 仍能以 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 方式执行切换前的 DDL 语句,无需手动取消和重新执行 DDL 语句,从而让 DDL 执行更加稳定高效。 + + 更多信息,请参考[用户文档](/ddl-introduction.md)。 + +* BR 备份恢复工具支持断点恢复 [#issue](https://github.com/pingcap/tidb/issues/issue) @[Leavrth](https://github.com/Leavrth) **tw:Oreoxmt** -* BR 备份恢复工具支持断点恢复 [#issue](https://github.com/pingcap/tidb/issues/issue) @[Leavrth](https://github.com/Leavrth) - 如果用户的 TiDB 集群规模较大,之前在进行数据库的快照恢复或日志恢复时,可能会出现一些意外情况导致恢复过程提前结束,例如硬盘空间占满、节点宕机等等。在 TiDB v7.1.0 之前的版本中,这些意外情况会导致之前恢复的进度作废,需要重新进行恢复,给用户带来大量额外成本和麻烦。 为了解决这个问题,TiDB v7.1.0 引入了备份恢复的断点恢复功能。该功能可以在意外中断后保留上一次恢复的大部分进度,使得用户能够尽可能地继续上一次的恢复的进度,避免不必要的成本和麻烦。 - 更多信息,请参考[用户文档](../br/br-checkpoint-restore.md)。 + 更多信息,请参考[用户文档](/br/br-checkpoint-restore.md)。 -* 统计信息缓存加载策略优化 [#issue](https://github.com/pingcap/tidb/issues/issue) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) +* 统计信息缓存加载策略优化 [#issue](https://github.com/pingcap/tidb/issues/issue) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw:hfxsd** - 在开启[统计信息同步加载](/statistics.md#统计信息的加载)的前提下, TiDB 大幅减少了启动时必须载入的统计信息的数量,并且在加载完成前不接受用户连接。 一方面提升了启动时统计信息的加载速度,另一方面,避免了在启动初始阶段由于统计信息不全而引起的性能回退。 提升了 TiDB 在复杂运行环境下的稳定性,降低了个别 TiDB 节点重启对整体服务的影响。 + 在开启[统计信息同步加载](/statistics.md#统计信息的加载)的前提下,TiDB 大幅减少了启动时必须载入的统计信息的数量,并且在加载完成前不接受用户连接。一方面提升了启动时统计信息的加载速度,另一方面,避免了在启动初始阶段由于统计信息不全而引起的性能回退。提升了 TiDB 在复杂运行环境下的稳定性,降低了个别 TiDB 节点重启对整体服务的影响。 更多信息,请参考[用户文档]()。 -* 优化统计信息收集的对象 [#issue](https://github.com/pingcap/tidb/issues/issue) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) +* 优化统计信息收集的对象 [#issue](https://github.com/pingcap/tidb/issues/issue) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw:hfxsd** + + 在 v7.1.0 中,TiDB 在收集优化器统计信息时,将会忽略一部分特殊的组件和列类型,从而加快了统计信息收集的速度,减少统计信息收集所消耗的系统资源。在一些特定场景,避免了统计信息收集造成的系统稳定性问题。 + + 更多信息,请参考[用户文档]()。 - 在 v7.1.0 中, TiDB 在收集优化器统计信息时,将会忽略一部分特殊的组件和列类型,从而加快了统计信息收集的速度,减少统计信息收集所消耗的系统资源。 在一些特定场景,避免了统计信息收集造成的系统稳定性问题。 - ### 高可用 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) @@ -128,12 +127,12 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/tiflash/tiflash-results-materialization.md)。 -* MySQL 兼容的多值索引 (Multi-Valued Index) GA [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei) @[qw4990](https://github.com/qw4990) @[YangKeao](https://github.com/YangKeao) +* MySQL 兼容的多值索引 (Multi-Valued Index) GA [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei) @[qw4990](https://github.com/qw4990) @[YangKeao](https://github.com/YangKeao) **tw:ran-huang** 过滤 JSON 列中某个数组的值是一个常见的操作,但普通索引起不到加速作用。在数组上创建多值索引能够大幅提升过滤的性能。如果 JSON 列中的某个数组上存在多值索引,那么函数 `MEMBER OF()`、`JSON_CONTAINS()`、`JSON_OVERLAPS()` 的检索条件可以利用多值索引过滤,从而减少大量的 I/O 消耗,提升执行速度。 - - 在 v7.1.0 中, TiDB 多值索引 (Multi-Valued Index) GA,支持更完整的数据类型,并与 TiDB 的工具链兼容。用户可以在生产环境利用“多值索引”加速对 JSON 数组的检索操作。 - + + 在 v7.1.0 中,TiDB 多值索引 (Multi-Valued Index) GA,支持更完整的数据类型,并与 TiDB 的工具链兼容。用户可以在生产环境利用“多值索引”加速对 JSON 数组的检索操作。 + 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引) * 支持完善的分区管理 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) **tw:qiancai** @@ -141,78 +140,64 @@ TiDB 版本:7.1.0 在 v7.1.0 版本之前,TiDB 支持的分区类型包括 `RANGE`、`LIST`、`HASH`、`KEY` ,其中 `RANGE` 和 `LIST` 分区支持分区管理功能。从 v7.1.0 版本开始,TiDB 新增 `HASH` 和 `KEY` 分区的 `ADD PARTITION` 和 `COALESCE PARTITION` 管理功能,并支持修改分区表类型(包括分区表和非分表之间的相互转换、不同分区类型之间的修改),整体完善了分表表的分区管理能力。你可以根据需要,灵活地对表的分区方式进行调整。 更多信息,请参考[用户文档](/partitioned-table.md#)。 + * `LOAD DATA` SQL 支持从 S3、GCS 导入数据,支持任务管理等功能 GA [#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** 以下 `LOAD DATA` 新增的功能在 7.1 版本 GA: + - 支持从 S3、GCS 导入数据 - 支持导入 Parquet 文件数据 - 支持解析源文件中 ascii、latin1、binary、gbk、utf8mbd 字符集 - 支持设置 FIELDS DEFINED NULL BY 将源文件的指定的值转换为 Null 写入目标表。 - 支持设置一个 bath_size 即 1 个 batch 插入到目标表的行数,提升写入性能。 - 支持设置 detached,允许该 job 在后台运行。 - - 支持 show load data jobs, show load data jobid, drop load data jobid 来管理任务。 + - 支持 show load data jobs, show load data jobid, drop load data jobid 来管理任务。 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/13344)。 -* `LOAD DATA` SQL 集成 Lighting local backend(physical import mode) 的导入功能,提升导入性能(实验特性) [#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** +* `LOAD DATA` SQL 集成 Lightning local backend(physical import mode) 的导入功能,提升导入性能(实验特性)[#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** - 用户通过 `LOAD DATA` SQL 导入数据时,可以指定 import_mode = physical 来实现 Lightning local backend (physical 导入模式)的导入效果,相比 Load data 原先的 logical 导入模式,可成倍提升导入数据的性能。 + 用户通过 `LOAD DATA` SQL 导入数据时,可以指定 import_mode = physical 来实现 Lightning local backend (physical 导入模式)的导入效果,相比 Load data 原先的 logical 导入模式,可成倍提升导入数据的性能。 更多信息,请参考[用户文档](链接)。 -* `LOAD DATA` SQL 支持并行导入,提升导入性能(实验特性)[#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** +* `LOAD DATA` SQL 支持并行导入,提升导入性能(实验特性)[#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** - 原先 load data sql 无法并行导入数据,性能较差。在该版本中支持设置并行导入的参数,通过提升并发,来提升导入的性能。 在实验室环境,相比上个版本,测试逻辑导入性能有接近 4 倍的提升。 + 原先 load data sql 无法并行导入数据,性能较差。在该版本中支持设置并行导入的参数,通过提升并发,来提升导入的性能。在实验室环境,相比上个版本,测试逻辑导入性能有接近 4 倍的提升。 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/13676)。 -* 生成列 (Generated Columns) GA [#issue号](链接) @[bb7133](https://github.com/bb7133) - - 生成列 (Generated Columns) 是 MySQL 数据库很有价值的一个功能。 在创建表时定义一列的值由表中其他列的值计算而来,而不是由用户显式插入或更新, 它可以是虚拟列 (Virtual Column) 或存储列(Stored Column)。 TiDB 在早期版本就提供了 MySQL 兼容的生成列,在 v7.1.0 中将这个功能 GA。 - - 生成列提升了 TiDB 对 MySQL 的兼容性,方便用户从 MySQL 平滑迁移,同时也简化数据维护的复杂度、增强数据的一致性、提高查询效率。 - 更多信息,请参考[用户文档](/generated-columns.md)。 +* 生成列 (Generated Columns) GA [#issue号](链接) @[bb7133](https://github.com/bb7133) **tw:ran-huang** -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) + 生成列 (Generated Columns) 是 MySQL 数据库很有价值的一个功能。在创建表时定义一列的值由表中其他列的值计算而来,而不是由用户显式插入或更新,它可以是虚拟列 (Virtual Column) 或存储列(Stored Column)。TiDB 在早期版本就提供了 MySQL 兼容的生成列,在 v7.1.0 中将这个功能 GA。 - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + 生成列提升了 TiDB 对 MySQL 的兼容性,方便用户从 MySQL 平滑迁移,同时也简化数据维护的复杂度、增强数据的一致性、提高查询效率。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/generated-columns.md)。 ### 数据库管理 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) +* DDL 任务支持暂停和恢复操作 [#issue号](链接) @[godouxm](https://github.com/godouxm) **tw:ran-huang** - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) + TiDB v7.1.0 之前的版本中,当 DDL 任务执行期间遇到业务高峰时间点时,为了减少对业务的影响,用户只能手动取消 DDL 任务。为了减轻 DDL 操作对业务负载的影响,TiDB v7.1.0 引入了 DDL 任务的暂停和恢复操作,用户可以在高峰时间点暂停 DDL 任务,等到业务高峰时间结束后再恢复 DDL 任务,从而避免了对业务的影响。 - 更多信息,请参考[用户文档](链接)。 -* DDL 任务支持暂停和恢复操作 [#issue号](链接) @[godouxm](https://github.com/godouxm) + 例如,可以通过如下 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 或 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md) 子句暂停或者恢复多个 DDL 任务: - TiDB v7.1.0 之前的版本中,当 DDL 任务执行期间遇到业务高峰时间点时,为了减少对业务的影响,用户只能手动取消 DDL 任务。为了减轻 DDL 操作对业务负载的影响,TiDB v7.1.0 引入了 DDL 任务的暂停和恢复操作,用户可以在高峰时间点暂停 DDL 任务,等到业务高峰时间结束后再恢复 DDL 任务,从而避免了对业务的影响。 - - 例如,可以通过如下 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 或 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md) 子句暂停或者恢复多个 DDL 任务: ```sql SQL> admin pause ddl jobs 1,2; SQL> admin resume ddl jobs 1,2; ``` - 更多信息,请参考 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 和 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md)。 + 更多信息,请参考 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 和 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md)。 +* 无需取消 DDL 的平滑集群升级功能 [#issue号](链接) @[zimulala](https://github.com/zimulala) @[hawkingrei](https://github.com/hawkingrei) **tw:ran-huang** -* 无需取消 DDL 的平滑集群升级功能 [#issue号](链接) @[zimulala](https://github.com/zimulala) @[hawkingrei](https://github.com/hawkingrei) - TiDB v7.1.0 之前的版本在升级集群时需要先手动取消正在运行或排队的 DDL 任务,在升级完毕后再手动添加这些任务。为了让用户享受更加平滑的升级体验,TiDB v7.1.0 引入了自动暂停和恢复 DDL 任务的功能。从 v7.1.0 版本开始,用户可以在不需要手动取消 DDL 任务的情况下升级集群。系统会自动暂停正在执行或排队的 DDL 任务,等待整个集群完成滚动升级后再自动恢复这些任务,让用户可以更加轻松地升级 TiDB 集群。 ### 可观测性 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - -* 增加优化器诊断信息 [#issue号](链接) @[time-and-fate](https://github.com/time-and-fate) +* 增加优化器诊断信息 [#issue号](链接) @[time-and-fate](https://github.com/time-and-fate) **tw:hfxsd** 获取充足的信息是 SQL 性能诊断的关键,在 v7.1.0 中,TiDB 持续向各种诊断工具中添加优化器运行信息,可以更好地解释执行计划如何被选择,协助用户和技术支持对 SQL 性能问题进行定位。其中包括: @@ -220,7 +205,7 @@ TiDB 版本:7.1.0 * [`EXPLAIN`](/explain-walkthrough.md) 的输出中,为 `operator info` 添加部分统计信息详情。 * 为[`慢日志`](/identify-slow-queries.md)的 `Stats` 字段添加部分统计信息详情。 - 更多信息,请参考 [使用 `PLAN REPLAYER` 保存和恢复集群线程信息](/sql-plan-replayer.md#使用-plan-replayer-保存和恢复集群现场信息),[使用 `EXPLAIN` 解读执行计划](/explain-walkthrough.md) 和 [`慢日志查询`](/identify-slow-queries.md) 。 + 更多信息,请参考[使用 `PLAN REPLAYER` 保存和恢复集群线程信息](/sql-plan-replayer.md#使用-plan-replayer-保存和恢复集群现场信息),[使用 `EXPLAIN` 解读执行计划](/explain-walkthrough.md)和[`慢日志查询`](/identify-slow-queries.md)。 ### 安全 @@ -230,29 +215,23 @@ TiDB 版本:7.1.0 ### 数据迁移 -* TiCDC 支持 E2E 单行数据正确性校验功能 [#issue号](链接) @[3AceShowHand](https://github.com/3AceShowHand) @[zyguan](https://github.com/zyguan) - +* TiCDC 支持 E2E 单行数据正确性校验功能 [#issue号](链接) @[3AceShowHand](https://github.com/3AceShowHand) @[zyguan](https://github.com/zyguan) **tw:Oreoxmt** + 从 v7.1.0 版本开始,TiCDC 新增了单行数据正确性校验功能,该功能基于 Checksum 算法对单行数据的正确性进行校验。通过该功能可以校验一行数据从 TiDB 写入、经由 TiCDC 流出,再写入到 Kafka 集群的过程中是否发生了数据错误。该功能仅支持下游是 Kafka Sink 的 Changefeed,支持 Canal-JSON / Avro / Open-Protocol 等协议。 - + 更多信息,请参考[用户文档](/ticdc/ticdc-integrity-check.md)。 * TiCDC 优化 DDL 同步操作 [#8686](https://github.com/pingcap/tiflow/issues/8686) @[nongfushanquan](https://github.com/nongfushanquan) **tw:ran-huang** 在 v7.1.0 版本之前,当用户在一个大表上运行需要影响所有行的 DDL 操作,例如添加 / 删除列时,TiCDC 的同步延迟会显著增加。从 v7.1.0 版本开始,TiCDC 对于这种情况进行了优化,将同步延迟降低到不到 10 秒,以减轻 DDL 操作对下游延迟的影响。 - + 更多信息,请参考[用户文档](链接)。 - + * Lightning local backend (physical import mode) 支持在导入数据之前检测冲突的记录,并支持通过 insert ignore 和 replace 解决导入过程中的冲突记录 (实验特性) [#41629](https://github.com/pingcap/tidb/issues/41629) @[gozssky](https://github.com/gozssky) **tw:hfxsd** 在之前的版本使用 Lightning local backend (physical import mode) 导入数据时,当遇到冲突的记录时,无法通过 insert ignore 和 replace 来处理导入过程中的 pk、uk 冲突记录,需要用户自行去重。而本次版本,支持在导入数据之前,检查冲突的记录,并通过 replace 和 insert ignore 的语义来处理 pk、uk 冲突的记录。简化用户的操作,提升处理冲突的性能。 更多信息,请参考[用户文档](链接)。 - -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 ## 兼容性变更 @@ -268,7 +247,7 @@ TiDB 版本:7.1.0 ### 行为变更 -* 为了提高安全性,TiFlash 废弃了 HTTP 服务端口(默认 `8123`),采用 gRPC 端口作为替代 ** tw:qiancai** +* 为了提高安全性,TiFlash 废弃了 HTTP 服务端口(默认 `8123`),采用 gRPC 端口作为替代 **tw:qiancai** 如果你已经将 TiFlash 升级到 v7.1.0,那么在升级 TiDB 到 v7.1.0 的过程中,TiFlash 系统表([`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md))不可读。 @@ -398,4 +377,4 @@ TiDB 版本:7.1.0 感谢来自 TiDB 社区的贡献者们: -- [贡献者 GitHub ID]() \ No newline at end of file +- [贡献者 GitHub ID]() From 360eeadffd42235259995123b1e29bca5329c339 Mon Sep 17 00:00:00 2001 From: Aolin Date: Fri, 14 Apr 2023 17:02:22 +0800 Subject: [PATCH 23/85] remove note --- releases/release-7.1.0.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 9a2e76e3f25a..9508c714c8a6 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -103,12 +103,6 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档]()。 -* 优化统计信息收集的对象 [#issue](https://github.com/pingcap/tidb/issues/issue) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw:hfxsd** - - 在 v7.1.0 中,TiDB 在收集优化器统计信息时,将会忽略一部分特殊的组件和列类型,从而加快了统计信息收集的速度,减少统计信息收集所消耗的系统资源。在一些特定场景,避免了统计信息收集造成的系统稳定性问题。 - - 更多信息,请参考[用户文档]()。 - ### 高可用 * 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) From 081313132e8c8b3db60242a637f8c893462edf59 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 17 Apr 2023 14:00:29 +0800 Subject: [PATCH 24/85] Update releases/release-7.1.0.md Co-authored-by: Grace Cai --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 9508c714c8a6..e347bc19e900 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -51,7 +51,7 @@ TiDB 版本:7.1.0 TiFlash MPP 模式有多种 Join 算法。在 v7.1.0 之前的版本中,TiDB 根据变量 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 以及实际数据量决定 TiFlash MPP 模式是否使用 Broadcast Hash Join 算法。 - 在 v7.1.0 中,TiDB 引入变量 [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入),控制是否基于最小网络数据交换策略选择 MPP Join 算法。该变量默认关闭,表示默认保持 v7.1.0 之前的算法选择策略。如需开启,请设置该变量为 `ON`,TiDB 会自动估算并考虑多种 Join 算法所需进行网络交换的数据量,然后选择综合开销较小的算法,从而减少网络流量,提升 MPP 查询性能。开启后,[`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 + 在 v7.1.0 中,TiDB 引入变量 [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入),控制是否基于最小网络数据交换策略选择 MPP Join 算法。该变量默认关闭,表示默认保持 v7.1.0 之前的算法选择策略。如需开启,请设置该变量为 `ON`。开启后,你无需再手动调整 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 的阈值(此时这两个变量将不再生效),TiDB 会自动估算不同 Join 算法所需进行网络交换的数据量,然后选择综合开销较小的算法,从而减少网络流量,提升 MPP 查询性能。 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 From 5286439b3e06f902526c2a27178d5f45dababea8 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 17 Apr 2023 14:03:39 +0800 Subject: [PATCH 25/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index e347bc19e900..93349ae2631f 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -117,7 +117,7 @@ TiDB 版本:7.1.0 从 v6.5.0 起,TiDB 支持下推 `INSERT INTO SELECT` 语句中的 `SELECT` 子句(分析查询)到 TiFlash,你可以将 TiFlash 的查询结果方便地保存到 `INSERT INTO` 指定的 TiDB 表中供后续分析使用,起到了结果缓存(即结果物化)的效果。 - 在 v7.1.0 版本中,该功能正式 GA。当 TiDB 执行 `INSERT INTO SELECT` 语句中的 `SELECT` 子句时,优化器将根据 SQL Mode 及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。因此,在实验特性阶段引入的系统变量 `tidb_enable_tiflash_read_for_write_stmt` 将被移除。需要注意的是,TiFlash 对于 `INSERT INTO SELECT` 语句的计算规则不满足 `STRICT SQL Mode` 要求,因此只有当前会话的 SQL Mode 是除 `STRICT_TRANS_TABLES`, `STRICT_ALL_TABLES` 之外的值时,TiDB 才允许将 `INSERT INTO SELECT` 语句中的查询下推至 TiFlash。 + 在 v7.1.0 版本中,该功能正式 GA。当 TiDB 执行 `INSERT INTO SELECT` 语句中的 `SELECT` 子句时,优化器将根据 [SQL 模式](/sql-mode.md) 及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。因此,在实验特性阶段引入的系统变量 `tidb_enable_tiflash_read_for_write_stmt` 将被废弃。需要注意的是,TiFlash 对于 `INSERT INTO SELECT` 语句的计算规则不满足 `STRICT SQL Mode` 要求,因此只有当前会话的 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`),TiDB 才允许将 `INSERT INTO SELECT` 语句中的 `SELECT` 子句下推至 TiFlash。 更多信息,请参考[用户文档](/tiflash/tiflash-results-materialization.md)。 From 99893d8b95b7385b588786f4b4899e8065e41c91 Mon Sep 17 00:00:00 2001 From: Ran Date: Mon, 17 Apr 2023 18:36:35 +0800 Subject: [PATCH 26/85] Apply suggestions from code review --- releases/release-7.1.0.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 93349ae2631f..ae9d9031d8a5 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -85,7 +85,7 @@ TiDB 版本:7.1.0 * 支持 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,提升容错性和自动恢复能力 [#issue](https://github.com/pingcap/tidb/issues/issue) @[tangenta](https://github.com/tangenta) **tw:ran-huang** - TiDB v7.1.0 版本引入 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,可以大幅提升 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的容错性和自动恢复能力。即使在 TiDB DDL Owner 切换的情况下,也能够通过周期性记录并同步 DDL 进度,让新的 TiDB DDL Owner 仍能以 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 方式执行切换前的 DDL 语句,无需手动取消和重新执行 DDL 语句,从而让 DDL 执行更加稳定高效。 + TiDB v7.1.0 引入 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,可以大幅提升 Fast Online DDL 的容错性和自动恢复能力。即使在 TiDB DDL Owner 切换的情况下,也能够通过周期性记录并同步 DDL 进度,让新的 TiDB DDL Owner 仍能以 Fast Online DDL 方式执行切换前的 DDL 语句,无需手动取消和重新执行 DDL 语句,从而让 DDL 执行更加稳定高效。 更多信息,请参考[用户文档](/ddl-introduction.md)。 @@ -121,11 +121,11 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](/tiflash/tiflash-results-materialization.md)。 -* MySQL 兼容的多值索引 (Multi-Valued Index) GA [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei) @[qw4990](https://github.com/qw4990) @[YangKeao](https://github.com/YangKeao) **tw:ran-huang** +* MySQL 兼容的多值索引 (Multi-Valued Index) 成为正式功能 (GA) [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei) @[qw4990](https://github.com/qw4990) @[YangKeao](https://github.com/YangKeao) **tw:ran-huang** - 过滤 JSON 列中某个数组的值是一个常见的操作,但普通索引起不到加速作用。在数组上创建多值索引能够大幅提升过滤的性能。如果 JSON 列中的某个数组上存在多值索引,那么函数 `MEMBER OF()`、`JSON_CONTAINS()`、`JSON_OVERLAPS()` 的检索条件可以利用多值索引过滤,从而减少大量的 I/O 消耗,提升执行速度。 + 过滤 JSON 列中某个数组的值是一种常见操作,但普通索引无法加速此过程。在数组上创建多值索引可以大幅提升过滤性能。如果 JSON 列中的某个数组上存在多值索引,则函数 `MEMBER OF()`、`JSON_CONTAINS()` 和 `JSON_OVERLAPS()` 的检索条件可以利用该多值索引进行过滤,从而减少大量的 I/O 消耗,提升执行速度。 - 在 v7.1.0 中,TiDB 多值索引 (Multi-Valued Index) GA,支持更完整的数据类型,并与 TiDB 的工具链兼容。用户可以在生产环境利用“多值索引”加速对 JSON 数组的检索操作。 + 在 v7.1.0 中,TiDB 多值索引成为正式功能 (GA),支持更完整的数据类型,并与 TiDB 的工具链兼容。用户可以在生产环境利用“多值索引”加速对 JSON 数组的检索操作。 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引) @@ -161,11 +161,11 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/13676)。 -* 生成列 (Generated Columns) GA [#issue号](链接) @[bb7133](https://github.com/bb7133) **tw:ran-huang** +* 生成列 (Generated Columns) 成为正式功能 (GA) [#issue号](链接) @[bb7133](https://github.com/bb7133) **tw:ran-huang** - 生成列 (Generated Columns) 是 MySQL 数据库很有价值的一个功能。在创建表时定义一列的值由表中其他列的值计算而来,而不是由用户显式插入或更新,它可以是虚拟列 (Virtual Column) 或存储列(Stored Column)。TiDB 在早期版本就提供了 MySQL 兼容的生成列,在 v7.1.0 中将这个功能 GA。 + 生成列是 MySQL 数据库中非常有价值的一个功能。在创建表时,可以定义一列的值由表中其他列的值计算而来,而不是由用户显式插入或更新。这个生成列可以是虚拟列 (Virtual Column) 或存储列 (Stored Column)。TiDB 在早期版本就提供了与 MySQL 兼容的生成列功能,在 v7.1.0 中这个功能正式 GA。 - 生成列提升了 TiDB 对 MySQL 的兼容性,方便用户从 MySQL 平滑迁移,同时也简化数据维护的复杂度、增强数据的一致性、提高查询效率。 + 使用生成列可以提升 TiDB 对 MySQL 的兼容性,方便用户从 MySQL 平滑迁移,同时也能简化数据维护复杂度、增强数据一致性并提高查询效率。 更多信息,请参考[用户文档](/generated-columns.md)。 @@ -178,16 +178,16 @@ TiDB 版本:7.1.0 例如,可以通过如下 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 或 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md) 子句暂停或者恢复多个 DDL 任务: ```sql - SQL> admin pause ddl jobs 1,2; + ADMIN PAUSE ddl jobs 1,2; - SQL> admin resume ddl jobs 1,2; + ADMIN RESUME ddl jobs 1,2; ``` 更多信息,请参考 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 和 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md)。 * 无需取消 DDL 的平滑集群升级功能 [#issue号](链接) @[zimulala](https://github.com/zimulala) @[hawkingrei](https://github.com/hawkingrei) **tw:ran-huang** - TiDB v7.1.0 之前的版本在升级集群时需要先手动取消正在运行或排队的 DDL 任务,在升级完毕后再手动添加这些任务。为了让用户享受更加平滑的升级体验,TiDB v7.1.0 引入了自动暂停和恢复 DDL 任务的功能。从 v7.1.0 版本开始,用户可以在不需要手动取消 DDL 任务的情况下升级集群。系统会自动暂停正在执行或排队的 DDL 任务,等待整个集群完成滚动升级后再自动恢复这些任务,让用户可以更加轻松地升级 TiDB 集群。 + 在 TiDB v7.1.0 之前的版本中,升级集群时需要先手动取消正在运行或排队的 DDL 任务,并在升级完成后再手动添加这些任务。为了让用户享受更加平滑的升级体验,TiDB v7.1.0 引入了自动暂停和恢复 DDL 任务的功能。从 v7.1.0 开始,用户无需手动取消 DDL 任务即可升级集群。系统会自动暂停正在执行或排队的 DDL 任务,等待整个集群完成滚动升级后再自动恢复这些任务,让用户可以更加轻松地升级 TiDB 集群。 ### 可观测性 @@ -217,7 +217,7 @@ TiDB 版本:7.1.0 * TiCDC 优化 DDL 同步操作 [#8686](https://github.com/pingcap/tiflow/issues/8686) @[nongfushanquan](https://github.com/nongfushanquan) **tw:ran-huang** - 在 v7.1.0 版本之前,当用户在一个大表上运行需要影响所有行的 DDL 操作,例如添加 / 删除列时,TiCDC 的同步延迟会显著增加。从 v7.1.0 版本开始,TiCDC 对于这种情况进行了优化,将同步延迟降低到不到 10 秒,以减轻 DDL 操作对下游延迟的影响。 + 在 v7.1.0 之前,当用户在一个大表上运行需要影响所有行的 DDL 操作(例如添加或删除列),TiCDC 的同步延迟会显著增加。从 v7.1.0 开始,TiCDC 对此进行了优化,将同步延迟降低到不到 10 秒,以减轻 DDL 操作对下游延迟的影响。 更多信息,请参考[用户文档](链接)。 From 2413352953f3cb4f1ccb1fc91d71bfc46ddfb6b4 Mon Sep 17 00:00:00 2001 From: Ran Date: Mon, 17 Apr 2023 18:36:57 +0800 Subject: [PATCH 27/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index ae9d9031d8a5..9f13137299b7 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -185,7 +185,7 @@ TiDB 版本:7.1.0 更多信息,请参考 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 和 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md)。 -* 无需取消 DDL 的平滑集群升级功能 [#issue号](链接) @[zimulala](https://github.com/zimulala) @[hawkingrei](https://github.com/hawkingrei) **tw:ran-huang** +* 支持无需取消 DDL 的平滑集群升级功能 [#issue号](链接) @[zimulala](https://github.com/zimulala) @[hawkingrei](https://github.com/hawkingrei) **tw:ran-huang** 在 TiDB v7.1.0 之前的版本中,升级集群时需要先手动取消正在运行或排队的 DDL 任务,并在升级完成后再手动添加这些任务。为了让用户享受更加平滑的升级体验,TiDB v7.1.0 引入了自动暂停和恢复 DDL 任务的功能。从 v7.1.0 开始,用户无需手动取消 DDL 任务即可升级集群。系统会自动暂停正在执行或排队的 DDL 任务,等待整个集群完成滚动升级后再自动恢复这些任务,让用户可以更加轻松地升级 TiDB 集群。 From e7b864caf8d2d281faf0b4e60dfa171083e3c4a0 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 17 Apr 2023 22:04:42 +0800 Subject: [PATCH 28/85] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-7.1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 9f13137299b7..6594d5f195d0 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -79,7 +79,7 @@ TiDB 版本:7.1.0 该特性也可以将多个来自不同系统的中小型应用合入一个 TiDB 集群中,个别应用的负载提升,不会影响其他应用的正常运行。而在系统负载较低的时候,繁忙的应用即使超过设定的读写配额,也仍然可以被分配到所需的系统资源,达到资源的最大化利用。此外,合理利用资源管控特性可以减少集群数量,降低运维难度及管理成本。 - 在 v7.1.0 中,TiDB 增加了基于实际负载来估算系统容量上限的能力,为客户的容量规划提供了更准确的参考,协助客户更好地管理 TiDB 的资源分配,从而满足企业级场景的稳定性需要。 + 在 v7.1.0 中,该特性增加了基于实际负载来估算系统容量上限的能力,为你进行容量规划提供了更准确的参考,协助你更好地管理 TiDB 的资源分配,从而满足企业级场景的稳定性需要。 更多信息,请参考[用户文档](/tidb-resource-control.md)。 @@ -99,7 +99,7 @@ TiDB 版本:7.1.0 * 统计信息缓存加载策略优化 [#issue](https://github.com/pingcap/tidb/issues/issue) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw:hfxsd** - 在开启[统计信息同步加载](/statistics.md#统计信息的加载)的前提下,TiDB 大幅减少了启动时必须载入的统计信息的数量,并且在加载完成前不接受用户连接。一方面提升了启动时统计信息的加载速度,另一方面,避免了在启动初始阶段由于统计信息不全而引起的性能回退。提升了 TiDB 在复杂运行环境下的稳定性,降低了个别 TiDB 节点重启对整体服务的影响。 + 开启[统计信息同步加载](/statistics.md#统计信息的加载)后,TiDB 可以大幅减少启动时必须载入的统计信息的数量,并且在加载完成前不接受用户连接。一方面提升了启动时统计信息的加载速度,另一方面也避免了在启动初始阶段由于统计信息不全而引起的性能回退。该特性提升了 TiDB 在复杂运行环境下的稳定性,降低了个别 TiDB 节点重启对整体服务的影响。 更多信息,请参考[用户文档]()。 From cc2260446560f970d0296352048f7716ad82f7f5 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 18 Apr 2023 14:41:50 +0800 Subject: [PATCH 29/85] remove release date and update new features Co-authored-by: xixirangrang --- releases/release-7.1.0.md | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 6594d5f195d0..7b43d960ab91 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -5,12 +5,6 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 # TiDB 7.1.0 Release Notes -发版日期:2023 年 x 月 x 日 - -TiDB 版本:7.1.0 - -试用链接:[快速体验](https://docs.pingcap.com/zh/tidb/dev/quick-start-with-tidb) | [下载离线包](https://cn.pingcap.com/product-community/) - 在 7.1.0 版本中,你可以获得以下关键特性: ## 功能详情 @@ -57,7 +51,7 @@ TiDB 版本:7.1.0 * 自适应副本读来缓解读热点 [#14151](https://github.com/tikv/tikv/issues/14151) @[sticnarf](https://github.com/sticnarf) @[you06](https://github.com/you06) **tw:Oreoxmt** - 发生读热点场景,其他 TiKV 节点可能仍存在闲置资源,与其在数据主节点持续排队等待,转而从其他节点读取副本可能带来更低的延迟。TiDB 在新版本开始支持负载自适应副本读,通过 [`tidb_load_based_replica_read_threshold`](/system-variables.md#tidb_load_based_replica_read_threshold-从-v700-版本开始引入) 参数来设置排队时间的临界值,当估算的排队时间超过设定时,TiDB 会尝试从副本节点读取数据。在读热点的情况下,相比于不打散有 70%-200% 的读取吞吐量提升。 + 在读热点场景中,热点 TiKV 无法及时处理读请求,导致读请求排队。但是,此时并非所有 TiKV 资源都已耗尽。为了降低延迟,TiDB v7.1.0 引入了负载自适应副本读取功能,允许从其他 TiKV 节点读取副本,而无需在热点 TiKV 节点排队等待。你可以通过 [`tidb_load_based_replica_read_threshold`](/system-variables.md#tidb_load_based_replica_read_threshold-从-v700-版本开始引入) 系统变量控制读请求的排队长度。当 leader 节点的预估排队时间超过该阈值时,TiDB 会优先从 follower 节点读取数据。在读热点的情况下,与不打散读热点相比,该功能可提高读取吞吐量 70%~200%。 更多信息,请参考[用户文档](/troubleshoot-hot-spot-issues.md#打散读热点)。 @@ -221,12 +215,6 @@ TiDB 版本:7.1.0 更多信息,请参考[用户文档](链接)。 -* Lightning local backend (physical import mode) 支持在导入数据之前检测冲突的记录,并支持通过 insert ignore 和 replace 解决导入过程中的冲突记录 (实验特性) [#41629](https://github.com/pingcap/tidb/issues/41629) @[gozssky](https://github.com/gozssky) **tw:hfxsd** - - 在之前的版本使用 Lightning local backend (physical import mode) 导入数据时,当遇到冲突的记录时,无法通过 insert ignore 和 replace 来处理导入过程中的 pk、uk 冲突记录,需要用户自行去重。而本次版本,支持在导入数据之前,检查冲突的记录,并通过 replace 和 insert ignore 的语义来处理 pk、uk 冲突的记录。简化用户的操作,提升处理冲突的性能。 - - 更多信息,请参考[用户文档](链接)。 - ## 兼容性变更 > **注意:** From b6fca761420b6f607a64b5db01e3074bd2d065ba Mon Sep 17 00:00:00 2001 From: Ran Date: Tue, 18 Apr 2023 15:21:06 +0800 Subject: [PATCH 30/85] Apply suggestions from code review --- releases/release-7.1.0.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 7b43d960ab91..4fbd72920773 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -119,7 +119,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 过滤 JSON 列中某个数组的值是一种常见操作,但普通索引无法加速此过程。在数组上创建多值索引可以大幅提升过滤性能。如果 JSON 列中的某个数组上存在多值索引,则函数 `MEMBER OF()`、`JSON_CONTAINS()` 和 `JSON_OVERLAPS()` 的检索条件可以利用该多值索引进行过滤,从而减少大量的 I/O 消耗,提升执行速度。 - 在 v7.1.0 中,TiDB 多值索引成为正式功能 (GA),支持更完整的数据类型,并与 TiDB 的工具链兼容。用户可以在生产环境利用“多值索引”加速对 JSON 数组的检索操作。 + 在 v7.1.0 中,TiDB 多值索引成为正式功能 (GA),支持更完整的数据类型,并与 TiDB 的工具链兼容。你可以在生产环境利用多值索引来加速对 JSON 数组的检索操作。 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引) @@ -181,7 +181,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * 支持无需取消 DDL 的平滑集群升级功能 [#issue号](链接) @[zimulala](https://github.com/zimulala) @[hawkingrei](https://github.com/hawkingrei) **tw:ran-huang** - 在 TiDB v7.1.0 之前的版本中,升级集群时需要先手动取消正在运行或排队的 DDL 任务,并在升级完成后再手动添加这些任务。为了让用户享受更加平滑的升级体验,TiDB v7.1.0 引入了自动暂停和恢复 DDL 任务的功能。从 v7.1.0 开始,用户无需手动取消 DDL 任务即可升级集群。系统会自动暂停正在执行或排队的 DDL 任务,等待整个集群完成滚动升级后再自动恢复这些任务,让用户可以更加轻松地升级 TiDB 集群。 + 在 TiDB v7.1.0 之前的版本中,升级集群时需要先手动取消正在运行或排队的 DDL 任务,并在升级完成后再手动添加这些任务。 + + 为了让用户享受更加平滑的升级体验,TiDB v7.1.0 引入了自动暂停和恢复 DDL 任务的功能。从 v7.1.0 开始,用户无需手动取消 DDL 任务即可升级集群。系统会自动暂停正在执行或排队的 DDL 任务,等待整个集群完成滚动升级后再自动恢复这些任务,让用户可以更加轻松地升级 TiDB 集群。 ### 可观测性 @@ -211,7 +213,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * TiCDC 优化 DDL 同步操作 [#8686](https://github.com/pingcap/tiflow/issues/8686) @[nongfushanquan](https://github.com/nongfushanquan) **tw:ran-huang** - 在 v7.1.0 之前,当用户在一个大表上运行需要影响所有行的 DDL 操作(例如添加或删除列),TiCDC 的同步延迟会显著增加。从 v7.1.0 开始,TiCDC 对此进行了优化,将同步延迟降低到不到 10 秒,以减轻 DDL 操作对下游延迟的影响。 + 在 v7.1.0 之前,当用户在一个大表上运行需要影响所有行的 DDL 操作(例如添加或删除列),TiCDC 的同步延迟会显著增加。从 v7.1.0 开始,TiCDC 对此进行了优化,将同步延迟降低到不到 10 秒,以减轻 DDL 操作对下游延迟的影响。 更多信息,请参考[用户文档](链接)。 From b6864f4e8098f068fb57b54d438af0db9d75e2c9 Mon Sep 17 00:00:00 2001 From: Ran Date: Tue, 18 Apr 2023 16:36:48 +0800 Subject: [PATCH 31/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 4fbd72920773..6359bafd7342 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -241,7 +241,8 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| -| | | | +| `tidb_ddl_distribute_reorg` | 删除 | 重命名为 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入)。 | +| [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) | 新增 | 控制是否开启分布式执行框架。开启分布式执行后,DDL、Import 等支持的后端任务将会由集群中多个 TiDB 节点共同完成。该变量由 `tidb_ddl_distribute_reorg` 改名而来。| | | | | | | | | | | | | From b7300b12bb8a69639ccf528cbc9e821e016743f6 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 19 Apr 2023 10:29:59 +0800 Subject: [PATCH 32/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 6359bafd7342..6a9b7858a6f1 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -123,9 +123,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引) -* 支持完善的分区管理 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) **tw:qiancai** +* 完善 Hash 分区表和 Key 分区表的分区管理功能 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) **tw:qiancai** - 在 v7.1.0 版本之前,TiDB 支持的分区类型包括 `RANGE`、`LIST`、`HASH`、`KEY` ,其中 `RANGE` 和 `LIST` 分区支持分区管理功能。从 v7.1.0 版本开始,TiDB 新增 `HASH` 和 `KEY` 分区的 `ADD PARTITION` 和 `COALESCE PARTITION` 管理功能,并支持修改分区表类型(包括分区表和非分表之间的相互转换、不同分区类型之间的修改),整体完善了分表表的分区管理能力。你可以根据需要,灵活地对表的分区方式进行调整。 + 在 v7.1.0 之前,TiDB 中的 Hash 分区表和 Key 分区表只支持 `TRUNCATE PARTITION` 分区管理。从 v7.1.0 开始,Hash 分区表和 Key 分区表新增支持 `ADD PARTITION` 和 `COALESCE PARTITION` 分区管理。你可以根据需要灵活调整 Hash 分区表和 Key 分区表的分区数量。例如,通过 `ADD PARTITION` 语句增加分区数量,或通过 `COALESCE PARTITION` 语句减少分区数量。 更多信息,请参考[用户文档](/partitioned-table.md#)。 From 340c9b838d88dc1cb245827721e08a527ed94f60 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Wed, 19 Apr 2023 11:57:46 +0800 Subject: [PATCH 33/85] Update release-7.1.0.md modify tiflash storage-compute disaggegated fd to improvement --- releases/release-7.1.0.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 6a9b7858a6f1..af534bfa93c4 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -17,14 +17,6 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 ### 可扩展性 -* TiFlash 支持存算分离和对象存储 (GA) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[flowbehappy](https://github.com/flowbehappy) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw:qiancai** - - 在 v7.0.0 版本中,TiFlash 在已有的存算一体架构之外,新增存算分离架构。在此架构下,TiFlash 节点分为 Compute Node(计算节点)和 Write Node(写入节点)两种类型,并支持兼容 S3 API 的对象存储。这两种节点都可以单独扩缩容,独立调整计算或数据存储能力。 - - 从 v7.1.0 版本开始,TiFlash 存算分离架构正式 GA。TiFlash 的存算分离架构和存算一体架构不能混合使用、相互转换,需要在部署 TiFlash 时进行相应的配置指定使用其中的一种架构。 - - 更多信息,请参考[用户文档](/tiflash/tiflash-disaggregated-and-s3.md)。 - ### 性能 * 下一代 [`Partitioned Raft KV`](/partitioned-raft-kv.md) 存储引擎 GA [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw:Oreoxmt** @@ -280,7 +272,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 + TiFlash - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) + - TiFlash 支持存算分离和对象存储 (实验特性) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[flowbehappy](https://github.com/flowbehappy) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw:qiancai** + Tools From e934148b1941e96a0a54fec69a9caf4607eb583f Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 19 Apr 2023 12:01:42 +0800 Subject: [PATCH 34/85] Apply suggestions from code review --- releases/release-7.1.0.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index af534bfa93c4..546677506af5 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -47,13 +47,13 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 更多信息,请参考[用户文档](/troubleshoot-hot-spot-issues.md#打散读热点)。 -* 非 Prepare 语句的执行计划缓存 GA [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) **tw:Oreoxmt** +* 支持缓存非 Prepare 语句的执行计划 (GA) [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) **tw:Oreoxmt** - TiDB 在 v7.0.0 支持缓存非 Prepare 语句的执行计划,以提升在线交易场景的并发能力。v7.1.0 持续优化了这个能力,支持更多模式的 SQL 进入缓存,并正式将这个能力 GA。 + TiDB v7.0.0 引入了非 Prepare 语句的执行计划缓存作为实验特性,以提升在线交易场景的并发处理能力。该功能在 v7.1.0 正式 GA 并默认打开,支持缓存更多模式的 SQL。 - GA 之后,非 Prepare 与 Prepare SQL 的缓存池合并,以提升内存利用率,缓存大小通过变量 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size) 设置。原有的变量 [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size) 和 [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) 将被废弃。 + 为了提升内存利用率,TiDB v7.1.0 将非 Prepare 与 Prepare 语句的缓存池合并。你可以通过系统变量 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size) 设置缓存大小。原有的系统变量 [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size) 和 [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) 被废弃。 - 为了保持设置向前兼容,对于从低版本升级到 v7.1.0 的客户,缓存池大小 `tidb_session_plan_cache_size` 将会继承 `tidb_prepared_plan_cache_size`的设置,非 Parepare 语句的缓存保持关闭。经过性能测试后,用户可通过 [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 打开。对于新部署的客户,非 Parepare 语句的缓存则默认打开。 + 为保持向前兼容,从旧版本升级到 v7.1.0 时,缓存池大小 `tidb_session_plan_cache_size` 的值与 `tidb_prepared_plan_cache_size` 保持一致,[`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 保持升级前的设置。经过性能测试后,你可通过 `tidb_enable_non_prepared_plan_cache` 开启非 Parepare 语句的执行计划缓存功能。对于新创建的 v7.1.0 集群,非 Parepare 语句的缓存功能默认打开。 更多信息,请参考[用户文档](/sql-non-prepared-plan-cache.md)。 @@ -75,11 +75,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 更多信息,请参考[用户文档](/ddl-introduction.md)。 -* BR 备份恢复工具支持断点恢复 [#issue](https://github.com/pingcap/tidb/issues/issue) @[Leavrth](https://github.com/Leavrth) **tw:Oreoxmt** +* BR 备份恢复工具支持断点恢复 [#42339](https://github.com/pingcap/tidb/issues/42339) @[Leavrth](https://github.com/Leavrth) **tw:Oreoxmt** - 如果用户的 TiDB 集群规模较大,之前在进行数据库的快照恢复或日志恢复时,可能会出现一些意外情况导致恢复过程提前结束,例如硬盘空间占满、节点宕机等等。在 TiDB v7.1.0 之前的版本中,这些意外情况会导致之前恢复的进度作废,需要重新进行恢复,给用户带来大量额外成本和麻烦。 - - 为了解决这个问题,TiDB v7.1.0 引入了备份恢复的断点恢复功能。该功能可以在意外中断后保留上一次恢复的大部分进度,使得用户能够尽可能地继续上一次的恢复的进度,避免不必要的成本和麻烦。 + 快照恢复或日志恢复会因为一些可恢复性错误导致提前结束,例如硬盘空间占满、节点宕机等等一些突发情况。在 TiDB v7.1.0 之前,在错误被处理之后,之前恢复的进度会作废,你需要重新进行恢复。对大规模集群来说,会造成大量额外成本。为了尽可能继续上一次的恢复,从 TiDB v7.1.0 起,备份恢复特性引入了断点恢复的功能。该功能可以在意外中断后保留上一次恢复的大部分进度。 更多信息,请参考[用户文档](/br/br-checkpoint-restore.md)。 @@ -197,9 +195,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 ### 数据迁移 -* TiCDC 支持 E2E 单行数据正确性校验功能 [#issue号](链接) @[3AceShowHand](https://github.com/3AceShowHand) @[zyguan](https://github.com/zyguan) **tw:Oreoxmt** +* TiCDC 支持单行数据正确性校验功能 [#8718](https://github.com/pingcap/tiflow/issues/8718) [#42747](https://github.com/pingcap/tidb/issues/42747) @[3AceShowHand](https://github.com/3AceShowHand) @[zyguan](https://github.com/zyguan) **tw:Oreoxmt** - 从 v7.1.0 版本开始,TiCDC 新增了单行数据正确性校验功能,该功能基于 Checksum 算法对单行数据的正确性进行校验。通过该功能可以校验一行数据从 TiDB 写入、经由 TiCDC 流出,再写入到 Kafka 集群的过程中是否发生了数据错误。该功能仅支持下游是 Kafka Sink 的 Changefeed,支持 Canal-JSON / Avro / Open-Protocol 等协议。 + 从 v7.1.0 开始,TiCDC 引入了单行数据正确性校验功能,该功能基于 Checksum 算法对单行数据的正确性进行校验。该功能可以校验一行数据从 TiDB 写入、通过 TiCDC 同步,到写入 Kafka 集群的过程中是否出现错误。TiCDC 数据正确性校验功能仅支持下游是 Kafka 的 Changefeed,目前支持 Avro 协议。 更多信息,请参考[用户文档](/ticdc/ticdc-integrity-check.md)。 From 150e5979fdec918fae5291b96d9ec908ed268ae8 Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 19 Apr 2023 12:12:46 +0800 Subject: [PATCH 35/85] Automatic Resume DDL Tasks After Rolling Upgrade Cluster --- releases/release-7.1.0.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 546677506af5..a9b1e66a91e7 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -169,12 +169,6 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 更多信息,请参考 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 和 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md)。 -* 支持无需取消 DDL 的平滑集群升级功能 [#issue号](链接) @[zimulala](https://github.com/zimulala) @[hawkingrei](https://github.com/hawkingrei) **tw:ran-huang** - - 在 TiDB v7.1.0 之前的版本中,升级集群时需要先手动取消正在运行或排队的 DDL 任务,并在升级完成后再手动添加这些任务。 - - 为了让用户享受更加平滑的升级体验,TiDB v7.1.0 引入了自动暂停和恢复 DDL 任务的功能。从 v7.1.0 开始,用户无需手动取消 DDL 任务即可升级集群。系统会自动暂停正在执行或排队的 DDL 任务,等待整个集群完成滚动升级后再自动恢复这些任务,让用户可以更加轻松地升级 TiDB 集群。 - ### 可观测性 * 增加优化器诊断信息 [#issue号](链接) @[time-and-fate](https://github.com/time-and-fate) **tw:hfxsd** From fb5401a04fc40ae35b82fe4a5dd223f93a1fc5e4 Mon Sep 17 00:00:00 2001 From: Flowyi Date: Wed, 19 Apr 2023 15:54:06 +0800 Subject: [PATCH 36/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index a9b1e66a91e7..f7954c7dc47c 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -264,7 +264,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 + TiFlash - note [#issue](链接) @[贡献者 GitHub ID](链接) - - TiFlash 支持存算分离和对象存储 (实验特性) [#6882](https://github.com/pingcap/tiflash/issues/6882) @[flowbehappy](https://github.com/flowbehappy) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) @[lidezhu](https://github.com/lidezhu) @[CalvinNeo](https://github.com/CalvinNeo) **tw:qiancai** + - 显著提升 TiFlash 在存算分离架构下性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** + Tools From bd7d7eae6814f1998fd0190f96308293bf145193 Mon Sep 17 00:00:00 2001 From: Flowyi Date: Wed, 19 Apr 2023 15:58:47 +0800 Subject: [PATCH 37/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index f7954c7dc47c..6c7a65f906a0 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -264,7 +264,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 + TiFlash - note [#issue](链接) @[贡献者 GitHub ID](链接) - - 显著提升 TiFlash 在存算分离架构下性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** + - 显著提升 TiFlash 在存算分离架构下的性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** + Tools From b503c45064705eeff70cf38db94d916504568192 Mon Sep 17 00:00:00 2001 From: Flowyi Date: Wed, 19 Apr 2023 16:12:51 +0800 Subject: [PATCH 38/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 6c7a65f906a0..23cbc6aa5e6c 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -264,7 +264,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 + TiFlash - note [#issue](链接) @[贡献者 GitHub ID](链接) - - 显著提升 TiFlash 在存算分离架构下的性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** + - 提升 TiFlash 在存算分离架构下的性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** + Tools From 52396f7cf83dee92253934318b584f59ab813778 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Wed, 19 Apr 2023 16:34:58 +0800 Subject: [PATCH 39/85] Update release-7.1.0.md add range interval GA --- releases/release-7.1.0.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 23cbc6aa5e6c..9c24c6202ef2 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -119,6 +119,14 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 更多信息,请参考[用户文档](/partitioned-table.md#)。 +* Range INTERVAL 分区定义语法功能 GA [#35683](https://github.com/pingcap/tidb/issues/35683) @[mjonss](https://github.com/mjonss) + + 在 v6.3.0 版本,TiDB 支持了 Range INTERVAL 分区的语法,根据规则定义 Range 分区,不需要枚举所有分区,可大幅度缩短 Range 分区表定义语句冗长的书写方式。语义与原有 Range 分区等价。 + + 在 v7.1.0 版本中,该功能正式 GA。 + + 更多信息,请参考[用户文档](/partitioned-table.md#range-interval-分区)。 + * `LOAD DATA` SQL 支持从 S3、GCS 导入数据,支持任务管理等功能 GA [#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** 以下 `LOAD DATA` 新增的功能在 7.1 版本 GA: From d7432f837c285960a7be93bbe2a38ffc54b07420 Mon Sep 17 00:00:00 2001 From: Ran Date: Wed, 19 Apr 2023 17:15:48 +0800 Subject: [PATCH 40/85] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-7.1.0.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 9c24c6202ef2..7a1310cb5ef9 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -69,9 +69,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 更多信息,请参考[用户文档](/tidb-resource-control.md)。 -* 支持 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,提升容错性和自动恢复能力 [#issue](https://github.com/pingcap/tidb/issues/issue) @[tangenta](https://github.com/tangenta) **tw:ran-huang** +* 支持 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,提升容错性和自动恢复能力 [#42164](https://github.com/pingcap/tidb/issues/42164) @[tangenta](https://github.com/tangenta) **tw:ran-huang** - TiDB v7.1.0 引入 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,可以大幅提升 Fast Online DDL 的容错性和自动恢复能力。即使在 TiDB DDL Owner 切换的情况下,也能够通过周期性记录并同步 DDL 进度,让新的 TiDB DDL Owner 仍能以 Fast Online DDL 方式执行切换前的 DDL 语句,无需手动取消和重新执行 DDL 语句,从而让 DDL 执行更加稳定高效。 + TiDB v7.1.0 引入 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,可以大幅提升 Fast Online DDL 的容错性和自动恢复能力。即使在 DDL Owner 切换的情况下,TiDB 也能够通过周期性记录并同步 DDL 进度,让新的 DDL Owner 仍能以 Fast Online DDL 的方式执行切换前的 DDL 语句,无需手动取消和重新执行 DDL 语句,从而让 DDL 执行更加稳定高效。 更多信息,请参考[用户文档](/ddl-introduction.md)。 @@ -107,7 +107,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * MySQL 兼容的多值索引 (Multi-Valued Index) 成为正式功能 (GA) [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei) @[qw4990](https://github.com/qw4990) @[YangKeao](https://github.com/YangKeao) **tw:ran-huang** - 过滤 JSON 列中某个数组的值是一种常见操作,但普通索引无法加速此过程。在数组上创建多值索引可以大幅提升过滤性能。如果 JSON 列中的某个数组上存在多值索引,则函数 `MEMBER OF()`、`JSON_CONTAINS()` 和 `JSON_OVERLAPS()` 的检索条件可以利用该多值索引进行过滤,从而减少大量的 I/O 消耗,提升执行速度。 + 过滤 JSON 列中某个数组的值是一种常见操作,但使用普通索引无法加速此过程。在数组上创建多值索引可以大幅提升过滤性能。如果 JSON 列中的某个数组上存在多值索引,则函数 `MEMBER OF()`、`JSON_CONTAINS()` 和 `JSON_OVERLAPS()` 的检索条件可以利用该多值索引进行过滤,从而减少大量的 I/O 消耗,提升执行速度。 在 v7.1.0 中,TiDB 多值索引成为正式功能 (GA),支持更完整的数据类型,并与 TiDB 的工具链兼容。你可以在生产环境利用多值索引来加速对 JSON 数组的检索操作。 @@ -157,7 +157,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 生成列是 MySQL 数据库中非常有价值的一个功能。在创建表时,可以定义一列的值由表中其他列的值计算而来,而不是由用户显式插入或更新。这个生成列可以是虚拟列 (Virtual Column) 或存储列 (Stored Column)。TiDB 在早期版本就提供了与 MySQL 兼容的生成列功能,在 v7.1.0 中这个功能正式 GA。 - 使用生成列可以提升 TiDB 对 MySQL 的兼容性,方便用户从 MySQL 平滑迁移,同时也能简化数据维护复杂度、增强数据一致性并提高查询效率。 + 使用生成列可以提升 TiDB 对 MySQL 的兼容性,方便从 MySQL 平滑迁移到 TiDB,同时也能简化数据维护复杂度,增强数据一致性并提高查询效率。 更多信息,请参考[用户文档](/generated-columns.md)。 @@ -165,9 +165,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * DDL 任务支持暂停和恢复操作 [#issue号](链接) @[godouxm](https://github.com/godouxm) **tw:ran-huang** - TiDB v7.1.0 之前的版本中,当 DDL 任务执行期间遇到业务高峰时间点时,为了减少对业务的影响,用户只能手动取消 DDL 任务。为了减轻 DDL 操作对业务负载的影响,TiDB v7.1.0 引入了 DDL 任务的暂停和恢复操作,用户可以在高峰时间点暂停 DDL 任务,等到业务高峰时间结束后再恢复 DDL 任务,从而避免了对业务的影响。 + TiDB v7.1.0 之前的版本中,当 DDL 任务执行期间遇到业务高峰时间点时,为了减少对业务的影响,只能手动取消 DDL 任务。TiDB v7.1.0 引入了 DDL 任务的暂停和恢复功能,你可以在高峰时间点暂停 DDL 任务,等到业务高峰时间结束后再恢复 DDL 任务,从而避免了 DDL 操作对业务负载的影响。 - 例如,可以通过如下 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 或 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md) 子句暂停或者恢复多个 DDL 任务: + 例如,可以通过如下 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 或 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md) 语句暂停或者恢复多个 DDL 任务: ```sql ADMIN PAUSE ddl jobs 1,2; @@ -205,7 +205,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * TiCDC 优化 DDL 同步操作 [#8686](https://github.com/pingcap/tiflow/issues/8686) @[nongfushanquan](https://github.com/nongfushanquan) **tw:ran-huang** - 在 v7.1.0 之前,当用户在一个大表上运行需要影响所有行的 DDL 操作(例如添加或删除列),TiCDC 的同步延迟会显著增加。从 v7.1.0 开始,TiCDC 对此进行了优化,将同步延迟降低到不到 10 秒,以减轻 DDL 操作对下游延迟的影响。 + 在 v7.1.0 之前,当用户在一个大表上进行 DDL 操作时,如果 DDL 操作影响该表中的所有行(例如添加或删除列),TiCDC 的同步延迟会显著增加。从 v7.1.0 开始,TiCDC 对此进行了优化,将同步延迟降低到 10 秒以内,以减轻 DDL 操作对下游延迟的影响。 更多信息,请参考[用户文档](链接)。 From cbe8258f08f50445d02a85ff127990282b5271d5 Mon Sep 17 00:00:00 2001 From: Ran Date: Wed, 19 Apr 2023 17:17:33 +0800 Subject: [PATCH 41/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 7a1310cb5ef9..fb97514d63f1 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -170,9 +170,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 例如,可以通过如下 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 或 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md) 语句暂停或者恢复多个 DDL 任务: ```sql - ADMIN PAUSE ddl jobs 1,2; + ADMIN PAUSE DDL JOBS 1,2; - ADMIN RESUME ddl jobs 1,2; + ADMIN RESUME DDL JOBS 1,2; ``` 更多信息,请参考 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 和 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md)。 From d322b2c376ce79968a1812de96a88a39a65b7f4e Mon Sep 17 00:00:00 2001 From: Ran Date: Wed, 19 Apr 2023 17:21:43 +0800 Subject: [PATCH 42/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index fb97514d63f1..2057594a4260 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -163,7 +163,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 ### 数据库管理 -* DDL 任务支持暂停和恢复操作 [#issue号](链接) @[godouxm](https://github.com/godouxm) **tw:ran-huang** +* DDL 任务支持暂停和恢复操作 [#18015](https://github.com/pingcap/tidb/issues/18015) @[godouxm](https://github.com/godouxm) **tw:ran-huang** TiDB v7.1.0 之前的版本中,当 DDL 任务执行期间遇到业务高峰时间点时,为了减少对业务的影响,只能手动取消 DDL 任务。TiDB v7.1.0 引入了 DDL 任务的暂停和恢复功能,你可以在高峰时间点暂停 DDL 任务,等到业务高峰时间结束后再恢复 DDL 任务,从而避免了 DDL 操作对业务负载的影响。 From caa8d7e13beaa2487faefd52dc213e2e072eb64d Mon Sep 17 00:00:00 2001 From: Ran Date: Wed, 19 Apr 2023 17:43:27 +0800 Subject: [PATCH 43/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 2057594a4260..1aa38e4bee5d 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -153,7 +153,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/13676)。 -* 生成列 (Generated Columns) 成为正式功能 (GA) [#issue号](链接) @[bb7133](https://github.com/bb7133) **tw:ran-huang** +* 生成列 (Generated Columns) 成为正式功能 (GA) @[bb7133](https://github.com/bb7133) **tw:ran-huang** 生成列是 MySQL 数据库中非常有价值的一个功能。在创建表时,可以定义一列的值由表中其他列的值计算而来,而不是由用户显式插入或更新。这个生成列可以是虚拟列 (Virtual Column) 或存储列 (Stored Column)。TiDB 在早期版本就提供了与 MySQL 兼容的生成列功能,在 v7.1.0 中这个功能正式 GA。 From 743e1854f0d2b602d0a42a74e19c479b0bcd8a4a Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Wed, 19 Apr 2023 17:44:23 +0800 Subject: [PATCH 44/85] Apply suggestions from code review --- releases/release-7.1.0.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 1aa38e4bee5d..c125aaf7c309 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -234,8 +234,10 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 | 变量名 | 修改类型(包括新增/修改/删除) | 描述 | |--------|------------------------------|------| | `tidb_ddl_distribute_reorg` | 删除 | 重命名为 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入)。 | +| [`tidb_enable_tiflash_read_for_write_stmt`](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) | 废弃 | 默认值从 `OFF` 修改为 `ON`,当 [`tidb_allow_mpp = ON`](/system-variables.md#tidb_allow_mpp-从-v50-版本开始引入) 时,优化器将根据 [SQL 模式](/sql-mode.md) 及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。 | +| [`tidb_opt_enable_late_materialization`](/system-variables.md#tidb_opt_enable_late_materialization-从-v700-版本开始引入) | 修改 | 默认值从 `OFF` 修改为 `ON`,代表 [TiFlash 延迟物化](/tiflash/tiflash-late-materialization.md)功能默认开启。 | | [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) | 新增 | 控制是否开启分布式执行框架。开启分布式执行后,DDL、Import 等支持的后端任务将会由集群中多个 TiDB 节点共同完成。该变量由 `tidb_ddl_distribute_reorg` 改名而来。| -| | | | +| [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入) | 新增 | 控制是否使用最小网络数据交换策略。使用该策略时,TiDB 会估算 Broadcast Hash Join 和 Shuffled Hash Join 两种算法所需进行网络交换的数据量,并选择网络交换数据量较小的算法。该功能开启后,[`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_size-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 | | | | | | | | | From 370d657f5052849a89ec51ec7b0f4568d85c9897 Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 19 Apr 2023 18:14:58 +0800 Subject: [PATCH 45/85] update links Signed-off-by: Aolin --- releases/release-7.1.0.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index c125aaf7c309..8d29a121766e 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -9,12 +9,6 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 ## 功能详情 -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - ### 可扩展性 ### 性能 @@ -41,7 +35,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 -* 自适应副本读来缓解读热点 [#14151](https://github.com/tikv/tikv/issues/14151) @[sticnarf](https://github.com/sticnarf) @[you06](https://github.com/you06) **tw:Oreoxmt** +* 支持自适应副本读取缓解读热点 [#14151](https://github.com/tikv/tikv/issues/14151) @[sticnarf](https://github.com/sticnarf) @[you06](https://github.com/you06) **tw:Oreoxmt** 在读热点场景中,热点 TiKV 无法及时处理读请求,导致读请求排队。但是,此时并非所有 TiKV 资源都已耗尽。为了降低延迟,TiDB v7.1.0 引入了负载自适应副本读取功能,允许从其他 TiKV 节点读取副本,而无需在热点 TiKV 节点排队等待。你可以通过 [`tidb_load_based_replica_read_threshold`](/system-variables.md#tidb_load_based_replica_read_threshold-从-v700-版本开始引入) 系统变量控制读请求的排队长度。当 leader 节点的预估排队时间超过该阈值时,TiDB 会优先从 follower 节点读取数据。在读热点的情况下,与不打散读热点相比,该功能可提高读取吞吐量 70%~200%。 @@ -51,7 +45,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 TiDB v7.0.0 引入了非 Prepare 语句的执行计划缓存作为实验特性,以提升在线交易场景的并发处理能力。该功能在 v7.1.0 正式 GA 并默认打开,支持缓存更多模式的 SQL。 - 为了提升内存利用率,TiDB v7.1.0 将非 Prepare 与 Prepare 语句的缓存池合并。你可以通过系统变量 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size) 设置缓存大小。原有的系统变量 [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size) 和 [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) 被废弃。 + 为了提升内存利用率,TiDB v7.1.0 将非 Prepare 与 Prepare 语句的缓存池合并。你可以通过系统变量 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) 设置缓存大小。原有的系统变量 [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size-从-v610-版本开始引入) 和 [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) 被废弃。 为保持向前兼容,从旧版本升级到 v7.1.0 时,缓存池大小 `tidb_session_plan_cache_size` 的值与 `tidb_prepared_plan_cache_size` 保持一致,[`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 保持升级前的设置。经过性能测试后,你可通过 `tidb_enable_non_prepared_plan_cache` 开启非 Parepare 语句的执行计划缓存功能。对于新创建的 v7.1.0 集群,非 Parepare 语句的缓存功能默认打开。 @@ -119,7 +113,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 更多信息,请参考[用户文档](/partitioned-table.md#)。 -* Range INTERVAL 分区定义语法功能 GA [#35683](https://github.com/pingcap/tidb/issues/35683) @[mjonss](https://github.com/mjonss) +* Range INTERVAL 分区定义语法功能 GA [#35683](https://github.com/pingcap/tidb/issues/35683) @[mjonss](https://github.com/mjonss) **tw:qiancai** 在 v6.3.0 版本,TiDB 支持了 Range INTERVAL 分区的语法,根据规则定义 Range 分区,不需要枚举所有分区,可大幅度缩短 Range 分区表定义语句冗长的书写方式。语义与原有 Range 分区等价。 From 500fa0ca676f005b76266a3c759ff84de3c22e26 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 20 Apr 2023 09:13:13 +0800 Subject: [PATCH 46/85] Apply suggestions from code review Co-authored-by: Ran --- releases/release-7.1.0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 8d29a121766e..b89e932868dd 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -115,9 +115,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * Range INTERVAL 分区定义语法功能 GA [#35683](https://github.com/pingcap/tidb/issues/35683) @[mjonss](https://github.com/mjonss) **tw:qiancai** - 在 v6.3.0 版本,TiDB 支持了 Range INTERVAL 分区的语法,根据规则定义 Range 分区,不需要枚举所有分区,可大幅度缩短 Range 分区表定义语句冗长的书写方式。语义与原有 Range 分区等价。 + 在 v6.3.0 中,TiDB 支持了 Range INTERVAL 分区的语法,根据规则定义 Range 分区,不需要枚举所有分区,可大幅度缩短 Range 分区表的定义语句长度。语义与原有 Range 分区等价。 - 在 v7.1.0 版本中,该功能正式 GA。 + 在 v7.1.0 中,该功能正式 GA。 更多信息,请参考[用户文档](/partitioned-table.md#range-interval-分区)。 @@ -187,7 +187,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * 更换 TiFlash 系统表信息的查询接口 [#6941](https://github.com/pingcap/tiflash/issues/6941) @[flowbehappy](https://github.com/flowbehappy) **tw:qiancai** - 从 v7.1.0 起,TiFlash 在向 TiDB 提供 [`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md) 系统表查询服务的端口时,不再使用 HTTP 端口,而是使用 gRPC 端口,从而避免 HTTP 服务的安全风险。 + 从 v7.1.0 起,TiFlash 在向 TiDB 提供 [`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md) 系统表的查询服务时,不再使用 HTTP 端口,而是使用 gRPC 端口,从而避免 HTTP 服务的安全风险。 ### 数据迁移 @@ -219,7 +219,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * 为了提高安全性,TiFlash 废弃了 HTTP 服务端口(默认 `8123`),采用 gRPC 端口作为替代 **tw:qiancai** - 如果你已经将 TiFlash 升级到 v7.1.0,那么在升级 TiDB 到 v7.1.0 的过程中,TiFlash 系统表([`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md))不可读。 + 如果你已经将 TiFlash 升级到 v7.1.0,那么在升级 TiDB 到 v7.1.0 的过程中,TiDB 无法读取 TiFlash 系统表([`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md))。 * 行为变更 2 From 80719b191fde019d4b0e0c9bf5a088c5f61f79f2 Mon Sep 17 00:00:00 2001 From: Ran Date: Thu, 20 Apr 2023 11:27:02 +0800 Subject: [PATCH 47/85] Update releases/release-7.1.0.md Co-authored-by: Grace Cai --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index b89e932868dd..13c18c10cab7 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -149,7 +149,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * 生成列 (Generated Columns) 成为正式功能 (GA) @[bb7133](https://github.com/bb7133) **tw:ran-huang** - 生成列是 MySQL 数据库中非常有价值的一个功能。在创建表时,可以定义一列的值由表中其他列的值计算而来,而不是由用户显式插入或更新。这个生成列可以是虚拟列 (Virtual Column) 或存储列 (Stored Column)。TiDB 在早期版本就提供了与 MySQL 兼容的生成列功能,在 v7.1.0 中这个功能正式 GA。 + 生成列是数据库中非常有价值的一个功能。在创建表时,可以定义一列的值由表中其他列的值计算而来,而不是由用户显式插入或更新。这个生成列可以是虚拟列 (Virtual Column) 或存储列 (Stored Column)。TiDB 在早期版本就提供了与 MySQL 兼容的生成列功能,在 v7.1.0 中这个功能正式 GA。 使用生成列可以提升 TiDB 对 MySQL 的兼容性,方便从 MySQL 平滑迁移到 TiDB,同时也能简化数据维护复杂度,增强数据一致性并提高查询效率。 From 05583ff32b7cb516aa9ba08208f72ee100d913b7 Mon Sep 17 00:00:00 2001 From: Ran Date: Thu, 20 Apr 2023 11:27:10 +0800 Subject: [PATCH 48/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 13c18c10cab7..c3e3e4f8268b 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -157,7 +157,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 ### 数据库管理 -* DDL 任务支持暂停和恢复操作 [#18015](https://github.com/pingcap/tidb/issues/18015) @[godouxm](https://github.com/godouxm) **tw:ran-huang** +* DDL 任务支持暂停和恢复操作(实验特性) [#18015](https://github.com/pingcap/tidb/issues/18015) @[godouxm](https://github.com/godouxm) **tw:ran-huang** TiDB v7.1.0 之前的版本中,当 DDL 任务执行期间遇到业务高峰时间点时,为了减少对业务的影响,只能手动取消 DDL 任务。TiDB v7.1.0 引入了 DDL 任务的暂停和恢复功能,你可以在高峰时间点暂停 DDL 任务,等到业务高峰时间结束后再恢复 DDL 任务,从而避免了 DDL 操作对业务负载的影响。 From 7286f054a7f139049780170c0d99d97875c713b3 Mon Sep 17 00:00:00 2001 From: Cathy <24819510+benmaoer@users.noreply.github.com> Date: Thu, 20 Apr 2023 17:03:59 +0800 Subject: [PATCH 49/85] Apply suggestions from code review --- releases/release-7.1.0.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index c3e3e4f8268b..e6631794a272 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -13,9 +13,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 ### 性能 -* 下一代 [`Partitioned Raft KV`](/partitioned-raft-kv.md) 存储引擎 GA [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw:Oreoxmt** +* 下一代 [`Partitioned Raft KV`](/partitioned-raft-kv.md) 存储引擎 [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw:Oreoxmt** - TiDB v6.6.0 引入的全新的 TiKV 存储引擎 [`Partitioned Raft KV`](/partitioned-raft-kv.md) 在 TiDB v7.1.0 版本正式 GA。该引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,为每个 Region 提供独立的 RocksDB 实例。此外,该引擎能够更好地管理 RocksDB 实例的文件数和层级,实现 Region 间的数据操作物理隔离,并支持更多数据的平滑扩展。与原 TiKV 存储引擎相比,使用该引擎在相同硬件条件和读写混合场景下,可实现约 2 倍的写入吞吐、3 倍的读取吞吐,并缩短约 4/5 的弹性伸缩时间。该引擎与 TiFlash 引擎兼容,支持 Lightning / BR / TiCDC 等周边工具。该引擎目前仅支持在新集群中使用,暂不支持从原 TiKV 存储引擎直接升级到该引擎。 + TiDB v7.1.0 的 [`Partitioned Raft KV`](/partitioned-raft-kv.md) 存储引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,为每个 Region 提供独立的 RocksDB 实例。该引擎能够更好地管理 RocksDB 实例的文件数和层级,实现 Region 间的数据操作物理隔离,并支持更多数据的平滑扩展。与原 TiKV 存储引擎相比,使用该引擎在相同硬件条件和读写混合场景下,可实现约 2 倍的写入吞吐、3 倍的读取吞吐,并缩短约 4/5 的弹性伸缩时间。该引擎与 TiFlash 引擎兼容,支持 Lightning / BR / TiCDC 等周边工具。该引擎目前仅支持在新集群中使用,暂不支持从原 TiKV 存储引擎直接升级到该引擎。 更多信息,请参考[用户文档](/partitioned-raft-kv.md)。 @@ -50,7 +50,13 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 为保持向前兼容,从旧版本升级到 v7.1.0 时,缓存池大小 `tidb_session_plan_cache_size` 的值与 `tidb_prepared_plan_cache_size` 保持一致,[`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 保持升级前的设置。经过性能测试后,你可通过 `tidb_enable_non_prepared_plan_cache` 开启非 Parepare 语句的执行计划缓存功能。对于新创建的 v7.1.0 集群,非 Parepare 语句的缓存功能默认打开。 更多信息,请参考[用户文档](/sql-non-prepared-plan-cache.md)。 +* DDL 支持分布式并行执行框架 [#41495](https://github.com/pingcap/tidb/issues/41495) @[benjamin2037](https://github.com/benjamin2037) + TiDB v7.1.0 之前的版本中,只有一个 TiDB 节点能够担任 DDL Owner 并执行 DDL 任务。但是,从 TiDB v7.1.0 开始,新的分布式并行执行框架支持多个 TiDB 节点并行执行同一个 DDL 任务,从而更好地利用 TiDB 集群的资源,大幅提升 DDL 的性能。此外,用户还可以通过增加 TiDB 节点来线性提升 DDL 的性能。需要注意的是,该特性是实验性特性,仅支持 `ADD INDEX` 操作。如果要使用分布式框架,只需将 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task) 为 `ON` + ```sql + SET GLOBAL tidb_enable_dist_task = ON; + ``` + 更多信息,请参考[用户文档](/tidb-distributed-execution-framework.md)。 ### 稳定性 * 资源管控 GA [#38825](https://github.com/pingcap/tidb/issues/38825) @[nolouch](https://github.com/nolouch) @[BornChanger](https://github.com/BornChanger) @[glorv](https://github.com/glorv) @[tiancaiamao](https://github.com/tiancaiamao) @[Connor1996](https://github.com/Connor1996) @[JmPotato](https://github.com/JmPotato) @[hnes](https://github.com/hnes) @[CabinfeverB](https://github.com/CabinfeverB) @[HuSharp](https://github.com/HuSharp) **tw:hfxsd** From 0522cd3f7b07ceb4594727874c56629dcd90e912 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 20 Apr 2023 17:46:49 +0800 Subject: [PATCH 50/85] remove Partitioned Raft KV, Distributed DDL, and TiCDC E2E --- releases/release-7.1.0.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index e6631794a272..632c6f21c9fc 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -13,12 +13,6 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 ### 性能 -* 下一代 [`Partitioned Raft KV`](/partitioned-raft-kv.md) 存储引擎 [#issue号](链接) @[busyjay](https://github.com/busyjay) @[tonyxuqqi](https://github.com/tonyxuqqi) @[tabokie](https://github.com/tabokie) @[bufferflies](https://github.com/bufferflies) @[5kbpers](https://github.com/5kbpers) @[SpadeA-Tang](https://github.com/SpadeA-Tang) @[nolouch](https://github.com/nolouch) **tw:Oreoxmt** - - TiDB v7.1.0 的 [`Partitioned Raft KV`](/partitioned-raft-kv.md) 存储引擎使用多个 RocksDB 实例存储 TiKV 的 Region 数据,为每个 Region 提供独立的 RocksDB 实例。该引擎能够更好地管理 RocksDB 实例的文件数和层级,实现 Region 间的数据操作物理隔离,并支持更多数据的平滑扩展。与原 TiKV 存储引擎相比,使用该引擎在相同硬件条件和读写混合场景下,可实现约 2 倍的写入吞吐、3 倍的读取吞吐,并缩短约 4/5 的弹性伸缩时间。该引擎与 TiFlash 引擎兼容,支持 Lightning / BR / TiCDC 等周边工具。该引擎目前仅支持在新集群中使用,暂不支持从原 TiKV 存储引擎直接升级到该引擎。 - - 更多信息,请参考[用户文档](/partitioned-raft-kv.md)。 - * TiFlash 查询支持延迟物化功能 (GA) [#5829](https://github.com/pingcap/tiflash/issues/5829) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) **tw:qiancai** 在 v7.0.0 中,TiFlash 引入了延迟物化实验特性,用于优化查询性能。该特性默认关闭(系统变量 [`tidb_opt_enable_late_materialization`](/system-variables.md#tidb_opt_enable_late_materialization-从-v700-版本开始引入) 默认为 `OFF`)。当 `SELECT` 语句中包含过滤条件(`WHERE` 子句)时,TiFlash 默认会先读取该查询所需列的全部数据,然后再根据查询条件对数据进行过滤、聚合等计算任务。开启该特性后,TiFlash 支持下推部分过滤条件到 TableScan 算子,即先扫描过滤条件相关的列数据,过滤得到符合条件的行后,再扫描这些行的其他列数据,继续后续计算,从而减少 IO 扫描和数据处理的计算量。 @@ -50,13 +44,6 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 为保持向前兼容,从旧版本升级到 v7.1.0 时,缓存池大小 `tidb_session_plan_cache_size` 的值与 `tidb_prepared_plan_cache_size` 保持一致,[`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 保持升级前的设置。经过性能测试后,你可通过 `tidb_enable_non_prepared_plan_cache` 开启非 Parepare 语句的执行计划缓存功能。对于新创建的 v7.1.0 集群,非 Parepare 语句的缓存功能默认打开。 更多信息,请参考[用户文档](/sql-non-prepared-plan-cache.md)。 -* DDL 支持分布式并行执行框架 [#41495](https://github.com/pingcap/tidb/issues/41495) @[benjamin2037](https://github.com/benjamin2037) - - TiDB v7.1.0 之前的版本中,只有一个 TiDB 节点能够担任 DDL Owner 并执行 DDL 任务。但是,从 TiDB v7.1.0 开始,新的分布式并行执行框架支持多个 TiDB 节点并行执行同一个 DDL 任务,从而更好地利用 TiDB 集群的资源,大幅提升 DDL 的性能。此外,用户还可以通过增加 TiDB 节点来线性提升 DDL 的性能。需要注意的是,该特性是实验性特性,仅支持 `ADD INDEX` 操作。如果要使用分布式框架,只需将 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task) 为 `ON` - ```sql - SET GLOBAL tidb_enable_dist_task = ON; - ``` - 更多信息,请参考[用户文档](/tidb-distributed-execution-framework.md)。 ### 稳定性 * 资源管控 GA [#38825](https://github.com/pingcap/tidb/issues/38825) @[nolouch](https://github.com/nolouch) @[BornChanger](https://github.com/BornChanger) @[glorv](https://github.com/glorv) @[tiancaiamao](https://github.com/tiancaiamao) @[Connor1996](https://github.com/Connor1996) @[JmPotato](https://github.com/JmPotato) @[hnes](https://github.com/hnes) @[CabinfeverB](https://github.com/CabinfeverB) @[HuSharp](https://github.com/HuSharp) **tw:hfxsd** @@ -197,12 +184,6 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 ### 数据迁移 -* TiCDC 支持单行数据正确性校验功能 [#8718](https://github.com/pingcap/tiflow/issues/8718) [#42747](https://github.com/pingcap/tidb/issues/42747) @[3AceShowHand](https://github.com/3AceShowHand) @[zyguan](https://github.com/zyguan) **tw:Oreoxmt** - - 从 v7.1.0 开始,TiCDC 引入了单行数据正确性校验功能,该功能基于 Checksum 算法对单行数据的正确性进行校验。该功能可以校验一行数据从 TiDB 写入、通过 TiCDC 同步,到写入 Kafka 集群的过程中是否出现错误。TiCDC 数据正确性校验功能仅支持下游是 Kafka 的 Changefeed,目前支持 Avro 协议。 - - 更多信息,请参考[用户文档](/ticdc/ticdc-integrity-check.md)。 - * TiCDC 优化 DDL 同步操作 [#8686](https://github.com/pingcap/tiflow/issues/8686) @[nongfushanquan](https://github.com/nongfushanquan) **tw:ran-huang** 在 v7.1.0 之前,当用户在一个大表上进行 DDL 操作时,如果 DDL 操作影响该表中的所有行(例如添加或删除列),TiCDC 的同步延迟会显著增加。从 v7.1.0 开始,TiCDC 对此进行了优化,将同步延迟降低到 10 秒以内,以减轻 DDL 操作对下游延迟的影响。 From 2076738bd3d7661a985cb1f61d0c6b6cab635341 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 20 Apr 2023 17:55:15 +0800 Subject: [PATCH 51/85] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-7.1.0.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 632c6f21c9fc..21d0ef50c5c9 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -44,6 +44,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 为保持向前兼容,从旧版本升级到 v7.1.0 时,缓存池大小 `tidb_session_plan_cache_size` 的值与 `tidb_prepared_plan_cache_size` 保持一致,[`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) 保持升级前的设置。经过性能测试后,你可通过 `tidb_enable_non_prepared_plan_cache` 开启非 Parepare 语句的执行计划缓存功能。对于新创建的 v7.1.0 集群,非 Parepare 语句的缓存功能默认打开。 更多信息,请参考[用户文档](/sql-non-prepared-plan-cache.md)。 + ### 稳定性 * 资源管控 GA [#38825](https://github.com/pingcap/tidb/issues/38825) @[nolouch](https://github.com/nolouch) @[BornChanger](https://github.com/BornChanger) @[glorv](https://github.com/glorv) @[tiancaiamao](https://github.com/tiancaiamao) @[Connor1996](https://github.com/Connor1996) @[JmPotato](https://github.com/JmPotato) @[hnes](https://github.com/hnes) @[CabinfeverB](https://github.com/CabinfeverB) @[HuSharp](https://github.com/HuSharp) **tw:hfxsd** @@ -208,7 +209,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 如果你已经将 TiFlash 升级到 v7.1.0,那么在升级 TiDB 到 v7.1.0 的过程中,TiDB 无法读取 TiFlash 系统表([`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md))。 -* 行为变更 2 +* `SHOW LOAD DATA` 的返回值废弃了参数 `Loaded_File_Size`,新增了参数 `Imported_Rows` **tw:hfxsd** ### 系统变量 From 0c43a1d17aa985f45a4fce1a0290b3ebfbb457aa Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 21 Apr 2023 10:27:29 +0800 Subject: [PATCH 52/85] Apply suggestions from code review --- releases/release-7.1.0.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 21d0ef50c5c9..b4849859a2a1 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -53,7 +53,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 该特性也可以将多个来自不同系统的中小型应用合入一个 TiDB 集群中,个别应用的负载提升,不会影响其他应用的正常运行。而在系统负载较低的时候,繁忙的应用即使超过设定的读写配额,也仍然可以被分配到所需的系统资源,达到资源的最大化利用。此外,合理利用资源管控特性可以减少集群数量,降低运维难度及管理成本。 - 在 v7.1.0 中,该特性增加了基于实际负载来估算系统容量上限的能力,为你进行容量规划提供了更准确的参考,协助你更好地管理 TiDB 的资源分配,从而满足企业级场景的稳定性需要。 + 在 v7.1.0 中,该特性增加了基于实际负载和硬件部署来估算系统容量上限的能力,为你进行容量规划提供了更准确的参考,协助你更好地管理 TiDB 的资源分配,从而满足企业级场景的稳定性需要。 更多信息,请参考[用户文档](/tidb-resource-control.md)。 @@ -65,11 +65,13 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * BR 备份恢复工具支持断点恢复 [#42339](https://github.com/pingcap/tidb/issues/42339) @[Leavrth](https://github.com/Leavrth) **tw:Oreoxmt** - 快照恢复或日志恢复会因为一些可恢复性错误导致提前结束,例如硬盘空间占满、节点宕机等等一些突发情况。在 TiDB v7.1.0 之前,在错误被处理之后,之前恢复的进度会作废,你需要重新进行恢复。对大规模集群来说,会造成大量额外成本。为了尽可能继续上一次的恢复,从 TiDB v7.1.0 起,备份恢复特性引入了断点恢复的功能。该功能可以在意外中断后保留上一次恢复的大部分进度。 + 快照恢复或日志恢复会因为一些可恢复性错误导致提前结束,例如硬盘空间占满、节点宕机等突发情况。在 TiDB v7.1.0 之前,即使错误被及时处理,之前恢复的进度也会作废,你需要重新进行恢复。对大规模集群来说,会造成大量额外成本。 + + 为了尽可能继续上一次的恢复,从 TiDB v7.1.0 起,备份恢复特性引入了断点恢复的功能。该功能可以在意外中断后保留上一次恢复的大部分进度。 更多信息,请参考[用户文档](/br/br-checkpoint-restore.md)。 -* 统计信息缓存加载策略优化 [#issue](https://github.com/pingcap/tidb/issues/issue) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw:hfxsd** +* 统计信息缓存加载策略优化 [#42160](https://github.com/pingcap/tidb/issues/42160) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw:hfxsd** 开启[统计信息同步加载](/statistics.md#统计信息的加载)后,TiDB 可以大幅减少启动时必须载入的统计信息的数量,并且在加载完成前不接受用户连接。一方面提升了启动时统计信息的加载速度,另一方面也避免了在启动初始阶段由于统计信息不全而引起的性能回退。该特性提升了 TiDB 在复杂运行环境下的稳定性,降低了个别 TiDB 节点重启对整体服务的影响。 @@ -127,19 +129,19 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 - 支持设置 detached,允许该 job 在后台运行。 - 支持 show load data jobs, show load data jobid, drop load data jobid 来管理任务。 - 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/13344)。 + 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 -* `LOAD DATA` SQL 集成 Lightning local backend(physical import mode) 的导入功能,提升导入性能(实验特性)[#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** +* `LOAD DATA` SQL 集成 TiDB Lightning Physical Import Mode) 的导入功能,提升导入性能(实验特性)[#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** - 用户通过 `LOAD DATA` SQL 导入数据时,可以指定 import_mode = physical 来实现 Lightning local backend (physical 导入模式)的导入效果,相比 Load data 原先的 logical 导入模式,可成倍提升导入数据的性能。 + `LOAD DATA` 集成 TiDB Lightning 的物理导入模式 (Physical Import Mode),你可以通过设置 `WITH import_mode = 'PHYSICAL'` 开启。相比逻辑导入模式 (Logical Import Mode),可成倍提升导入数据的性能。 - 更多信息,请参考[用户文档](链接)。 + 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 -* `LOAD DATA` SQL 支持并行导入,提升导入性能(实验特性)[#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** +* `LOAD DATA` 支持并行导入,提升导入性能(实验特性)[#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** - 原先 load data sql 无法并行导入数据,性能较差。在该版本中支持设置并行导入的参数,通过提升并发,来提升导入的性能。在实验室环境,相比上个版本,测试逻辑导入性能有接近 4 倍的提升。 + 之前 `LOAD DATA` 不支持并行导入数据,性能较差。在 TiDB v7.1.0 开始支持设置并行导入的参数,通过提升并发提升导入的性能。在实验室环境,相比上个版本,测试逻辑导入性能有接近 4 倍的提升。 - 更多信息,请参考[用户文档](https://github.com/pingcap/docs-cn/pull/13676)。 + 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 * 生成列 (Generated Columns) 成为正式功能 (GA) @[bb7133](https://github.com/bb7133) **tw:ran-huang** @@ -167,9 +169,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 ### 可观测性 -* 增加优化器诊断信息 [#issue号](链接) @[time-and-fate](https://github.com/time-and-fate) **tw:hfxsd** +* 增加优化器诊断信息 [#43122](https://github.com/pingcap/tidb/issues/43122) @[time-and-fate](https://github.com/time-and-fate) **tw:hfxsd** - 获取充足的信息是 SQL 性能诊断的关键,在 v7.1.0 中,TiDB 持续向各种诊断工具中添加优化器运行信息,可以更好地解释执行计划如何被选择,协助用户和技术支持对 SQL 性能问题进行定位。其中包括: + 获取充足的信息是 SQL 性能诊断的关键。在 v7.1.0 中,TiDB 持续向各种诊断工具中添加优化器运行信息,可以更好地解释执行计划如何被选择,协助对 SQL 性能问题进行定位。这些信息包括: * [`PLAN REPLAYER`](/sql-plan-replayer.md#使用-plan-replayer-保存和恢复集群现场信息) 的输出中增加 `debug_trace.json` 文件。 * [`EXPLAIN`](/explain-walkthrough.md) 的输出中,为 `operator info` 添加部分统计信息详情。 @@ -209,7 +211,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 如果你已经将 TiFlash 升级到 v7.1.0,那么在升级 TiDB 到 v7.1.0 的过程中,TiDB 无法读取 TiFlash 系统表([`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md))。 -* `SHOW LOAD DATA` 的返回值废弃了参数 `Loaded_File_Size`,新增了参数 `Imported_Rows` **tw:hfxsd** +* [`SHOW LOAD DATA`](/sql-statements/sql-statement-show-load-data.md) 的返回值废弃了参数 `Loaded_File_Size`,新增了参数 `Imported_Rows` **tw:hfxsd** ### 系统变量 From 40eea52d5d86909902bad911acdb50eb6925769f Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 21 Apr 2023 10:41:09 +0800 Subject: [PATCH 53/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index b4849859a2a1..594865095dba 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -53,7 +53,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 该特性也可以将多个来自不同系统的中小型应用合入一个 TiDB 集群中,个别应用的负载提升,不会影响其他应用的正常运行。而在系统负载较低的时候,繁忙的应用即使超过设定的读写配额,也仍然可以被分配到所需的系统资源,达到资源的最大化利用。此外,合理利用资源管控特性可以减少集群数量,降低运维难度及管理成本。 - 在 v7.1.0 中,该特性增加了基于实际负载和硬件部署来估算系统容量上限的能力,为你进行容量规划提供了更准确的参考,协助你更好地管理 TiDB 的资源分配,从而满足企业级场景的稳定性需要。 + 在 TiDB v7.1.0 中,该特性增加了基于实际负载和硬件部署来估算系统容量上限的能力,为你进行容量规划提供了更准确的参考,协助你更好地管理 TiDB 的资源分配,从而满足企业级场景的稳定性需要。 更多信息,请参考[用户文档](/tidb-resource-control.md)。 From da16c5f52bdd15871bf76f75117a8f6e9faa769d Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 21 Apr 2023 11:35:35 +0800 Subject: [PATCH 54/85] Update releases/release-7.1.0.md Co-authored-by: Grace Cai --- releases/release-7.1.0.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 594865095dba..21207af91304 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -109,11 +109,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 更多信息,请参考[用户文档](/partitioned-table.md#)。 -* Range INTERVAL 分区定义语法功能 GA [#35683](https://github.com/pingcap/tidb/issues/35683) @[mjonss](https://github.com/mjonss) **tw:qiancai** +* Range INTERVAL 分区定义语法成为正式功能 (GA) [#35683](https://github.com/pingcap/tidb/issues/35683) @[mjonss](https://github.com/mjonss) **tw:qiancai** - 在 v6.3.0 中,TiDB 支持了 Range INTERVAL 分区的语法,根据规则定义 Range 分区,不需要枚举所有分区,可大幅度缩短 Range 分区表的定义语句长度。语义与原有 Range 分区等价。 - - 在 v7.1.0 中,该功能正式 GA。 + 在 v6.3.0 中引入的 Range INTERVAL 的分区定义语法成为正式功能 (GA)。通过该语法,你可以根据规则定义 Range 分区,不需要枚举所有分区,可大幅度缩短 Range 分区表的定义语句长度。语义与原有 Range 分区等价。 更多信息,请参考[用户文档](/partitioned-table.md#range-interval-分区)。 From 71f0224463839e2a17e35d1243e027e1cf458c37 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 21 Apr 2023 12:22:20 +0800 Subject: [PATCH 55/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 21207af91304..45807df191d7 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -209,7 +209,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 如果你已经将 TiFlash 升级到 v7.1.0,那么在升级 TiDB 到 v7.1.0 的过程中,TiDB 无法读取 TiFlash 系统表([`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md))。 -* [`SHOW LOAD DATA`](/sql-statements/sql-statement-show-load-data.md) 的返回值废弃了参数 `Loaded_File_Size`,新增了参数 `Imported_Rows` **tw:hfxsd** +* [`SHOW LOAD DATA`](/sql-statements/sql-statement-show-load-data.md) 的返回值中废弃了参数 `Loaded_File_Size`,替换为参数 `Imported_Rows` **tw:hfxsd** ### 系统变量 From dd0e46f86dcdfe31a6dff292bfadbe7aa6141eff Mon Sep 17 00:00:00 2001 From: Aolin Date: Fri, 21 Apr 2023 16:23:54 +0800 Subject: [PATCH 56/85] Apply suggestions from code review Co-authored-by: xixirangrang --- releases/release-7.1.0.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 45807df191d7..1292c50d6290 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -31,7 +31,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * 支持自适应副本读取缓解读热点 [#14151](https://github.com/tikv/tikv/issues/14151) @[sticnarf](https://github.com/sticnarf) @[you06](https://github.com/you06) **tw:Oreoxmt** - 在读热点场景中,热点 TiKV 无法及时处理读请求,导致读请求排队。但是,此时并非所有 TiKV 资源都已耗尽。为了降低延迟,TiDB v7.1.0 引入了负载自适应副本读取功能,允许从其他 TiKV 节点读取副本,而无需在热点 TiKV 节点排队等待。你可以通过 [`tidb_load_based_replica_read_threshold`](/system-variables.md#tidb_load_based_replica_read_threshold-从-v700-版本开始引入) 系统变量控制读请求的排队长度。当 leader 节点的预估排队时间超过该阈值时,TiDB 会优先从 follower 节点读取数据。在读热点的情况下,与不打散读热点相比,该功能可提高读取吞吐量 70%~200%。 + 在读热点场景中,热点 TiKV 无法及时处理读请求,导致读请求排队。但是,此时并非所有 TiKV 资源都已耗尽。为了降低延迟,TiDB v7.1.0 引入了负载自适应副本读取功能,允许从其他有可用资源的 TiKV 节点读取副本,而无需在热点 TiKV 节点排队等待。你可以通过 [`tidb_load_based_replica_read_threshold`](/system-variables.md#tidb_load_based_replica_read_threshold-从-v700-版本开始引入) 系统变量控制读请求的排队长度。当 leader 节点的预估排队时间超过该阈值时,TiDB 会优先从 follower 节点读取数据。在读热点的情况下,与不打散读热点相比,该功能可提高读取吞吐量 70%~200%。 更多信息,请参考[用户文档](/troubleshoot-hot-spot-issues.md#打散读热点)。 @@ -75,7 +75,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 开启[统计信息同步加载](/statistics.md#统计信息的加载)后,TiDB 可以大幅减少启动时必须载入的统计信息的数量,并且在加载完成前不接受用户连接。一方面提升了启动时统计信息的加载速度,另一方面也避免了在启动初始阶段由于统计信息不全而引起的性能回退。该特性提升了 TiDB 在复杂运行环境下的稳定性,降低了个别 TiDB 节点重启对整体服务的影响。 - 更多信息,请参考[用户文档]()。 + 更多信息,请参考[用户文档](/statistics.md#统计信息的加载)。 ### 高可用 @@ -151,7 +151,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 ### 数据库管理 -* DDL 任务支持暂停和恢复操作(实验特性) [#18015](https://github.com/pingcap/tidb/issues/18015) @[godouxm](https://github.com/godouxm) **tw:ran-huang** +* DDL 任务支持暂停和恢复操作(实验特性)[#18015](https://github.com/pingcap/tidb/issues/18015) @[godouxm](https://github.com/godouxm) **tw:ran-huang** TiDB v7.1.0 之前的版本中,当 DDL 任务执行期间遇到业务高峰时间点时,为了减少对业务的影响,只能手动取消 DDL 任务。TiDB v7.1.0 引入了 DDL 任务的暂停和恢复功能,你可以在高峰时间点暂停 DDL 任务,等到业务高峰时间结束后再恢复 DDL 任务,从而避免了 DDL 操作对业务负载的影响。 @@ -219,6 +219,8 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 | [`tidb_enable_tiflash_read_for_write_stmt`](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) | 废弃 | 默认值从 `OFF` 修改为 `ON`,当 [`tidb_allow_mpp = ON`](/system-variables.md#tidb_allow_mpp-从-v50-版本开始引入) 时,优化器将根据 [SQL 模式](/sql-mode.md) 及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。 | | [`tidb_opt_enable_late_materialization`](/system-variables.md#tidb_opt_enable_late_materialization-从-v700-版本开始引入) | 修改 | 默认值从 `OFF` 修改为 `ON`,代表 [TiFlash 延迟物化](/tiflash/tiflash-late-materialization.md)功能默认开启。 | | [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) | 新增 | 控制是否开启分布式执行框架。开启分布式执行后,DDL、Import 等支持的后端任务将会由集群中多个 TiDB 节点共同完成。该变量由 `tidb_ddl_distribute_reorg` 改名而来。| +| [``lite-init-stats``](/system-variables.md#lite-init-stats-从-v710-版本开始引入) | 新增 | 用于控制 TiDB 启动时是否采用轻量级的统计信息初始化。 | +| [`tidb_opt_fix_control`](/system-variables.md#tidb_opt_fix_control-从-v710-版本开始引入) | 新增 | | 通过设置该变量,你可以更细粒度地控制优化器的行为,并且避免集群升级后优化器行为变化导致的性能回退。 | | [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入) | 新增 | 控制是否使用最小网络数据交换策略。使用该策略时,TiDB 会估算 Broadcast Hash Join 和 Shuffled Hash Join 两种算法所需进行网络交换的数据量,并选择网络交换数据量较小的算法。该功能开启后,[`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_size-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 | | | | | | | | | From fe4439dbae62799d190478cc52d2f50bac12d650 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 21 Apr 2023 16:47:57 +0800 Subject: [PATCH 57/85] Apply suggestions from code review --- releases/release-7.1.0.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 1292c50d6290..1b3d5b65e566 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -219,7 +219,6 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 | [`tidb_enable_tiflash_read_for_write_stmt`](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) | 废弃 | 默认值从 `OFF` 修改为 `ON`,当 [`tidb_allow_mpp = ON`](/system-variables.md#tidb_allow_mpp-从-v50-版本开始引入) 时,优化器将根据 [SQL 模式](/sql-mode.md) 及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。 | | [`tidb_opt_enable_late_materialization`](/system-variables.md#tidb_opt_enable_late_materialization-从-v700-版本开始引入) | 修改 | 默认值从 `OFF` 修改为 `ON`,代表 [TiFlash 延迟物化](/tiflash/tiflash-late-materialization.md)功能默认开启。 | | [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) | 新增 | 控制是否开启分布式执行框架。开启分布式执行后,DDL、Import 等支持的后端任务将会由集群中多个 TiDB 节点共同完成。该变量由 `tidb_ddl_distribute_reorg` 改名而来。| -| [``lite-init-stats``](/system-variables.md#lite-init-stats-从-v710-版本开始引入) | 新增 | 用于控制 TiDB 启动时是否采用轻量级的统计信息初始化。 | | [`tidb_opt_fix_control`](/system-variables.md#tidb_opt_fix_control-从-v710-版本开始引入) | 新增 | | 通过设置该变量,你可以更细粒度地控制优化器的行为,并且避免集群升级后优化器行为变化导致的性能回退。 | | [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入) | 新增 | 控制是否使用最小网络数据交换策略。使用该策略时,TiDB 会估算 Broadcast Hash Join 和 Shuffled Hash Join 两种算法所需进行网络交换的数据量,并选择网络交换数据量较小的算法。该功能开启后,[`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_size-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 | | | | | @@ -230,7 +229,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | | TiFlash | `http_port` | 删除 | 废弃 TiFlash HTTP 服务端口(默认 `8123`)。| -| | | | | +| TiDB | [`lite-init-stats`](/tidb-configuration-file.md#lite-init-stats-从-v710-版本开始引入) | 新增 | 用于控制 TiDB 启动时是否采用轻量级的统计信息初始化。 | | | | | | | | | | | From 4c455341af807547a16c43e414987bcb546053a1 Mon Sep 17 00:00:00 2001 From: Frank945946 <108602632+Frank945946@users.noreply.github.com> Date: Fri, 21 Apr 2023 16:51:17 +0800 Subject: [PATCH 58/85] Update releases/release-7.1.0.md Co-authored-by: xixirangrang --- releases/release-7.1.0.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 1b3d5b65e566..9b888e036803 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -117,15 +117,15 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * `LOAD DATA` SQL 支持从 S3、GCS 导入数据,支持任务管理等功能 GA [#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** - 以下 `LOAD DATA` 新增的功能在 7.1 版本 GA: - - - 支持从 S3、GCS 导入数据 - - 支持导入 Parquet 文件数据 - - 支持解析源文件中 ascii、latin1、binary、gbk、utf8mbd 字符集 - - 支持设置 FIELDS DEFINED NULL BY 将源文件的指定的值转换为 Null 写入目标表。 - - 支持设置一个 bath_size 即 1 个 batch 插入到目标表的行数,提升写入性能。 - - 支持设置 detached,允许该 job 在后台运行。 - - 支持 show load data jobs, show load data jobid, drop load data jobid 来管理任务。 + 以下 `LOAD DATA` 新增的功能在 TiDB v7.1.0 GA: + + - 支持从 S3、GCS 导入数据。 + - 支持导入 Parquet 文件数据。 + - 支持解析源文件中的下列字符集:`ascii`、`latin1`、`binary`、`gbk`、`utf8mbd` 字符集 + - 支持设置 `FIELDS DEFINED NULL BY` 将源文件的指定的值转换为 `NULL` 写入目标表。 + - 支持设置 1 个 `bath_size` 即 1 个 batch 插入到目标表的行数,提升写入性能。 + - 支持设置 `detached`,允许该 job 在后台运行。 + - 支持使用 `SHOW LOAD DATA` 和 `DROP LOAD DATA` 来管理任务。 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 From a5f71e684f1cf0633fae8574771fc4a46dd4b657 Mon Sep 17 00:00:00 2001 From: D3Hunter Date: Fri, 21 Apr 2023 17:17:21 +0800 Subject: [PATCH 59/85] Update releases/release-7.1.0.md Co-authored-by: xixirangrang --- releases/release-7.1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 9b888e036803..c8681d1c7009 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -135,9 +135,9 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 -* `LOAD DATA` 支持并行导入,提升导入性能(实验特性)[#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** +* `LOAD DATA` 支持并发导入,提升导入性能(实验特性)[#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** - 之前 `LOAD DATA` 不支持并行导入数据,性能较差。在 TiDB v7.1.0 开始支持设置并行导入的参数,通过提升并发提升导入的性能。在实验室环境,相比上个版本,测试逻辑导入性能有接近 4 倍的提升。 + 之前 `LOAD DATA` 不支持并发导入数据,性能较差。在 TiDB v7.1.0 开始支持设置并发导入的参数 `WITH thread=`,通过提升并发可以提升导入的性能。在实验室环境,相比上个版本,测试逻辑导入性能有接近 4 倍的提升。 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 From d1a09b67e8dd970483dd96eaff5add14b5864d5f Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 21 Apr 2023 19:44:35 +0800 Subject: [PATCH 60/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index c8681d1c7009..6cce93f9d87b 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -230,7 +230,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 | -------- | -------- | -------- | -------- | | TiFlash | `http_port` | 删除 | 废弃 TiFlash HTTP 服务端口(默认 `8123`)。| | TiDB | [`lite-init-stats`](/tidb-configuration-file.md#lite-init-stats-从-v710-版本开始引入) | 新增 | 用于控制 TiDB 启动时是否采用轻量级的统计信息初始化。 | -| | | | | +| TiCDC | [`sink.enable-partition-separator`](/ticdc/ticdc-changefeed-config.md#ticdc-changefeed-配置文件说明) | 修改 | 为了解决同步分区表到存储服务时可能丢数据的问题,默认值从 `false` 修改为 `true`,代表默认会将表中各个分区的数据分不同的目录来存储。建议保持该配置项为 `true` 以避免该问题 [#8581](https://github.com/pingcap/tiflow/issues/8581)。 | | | | | | ### 其他 From 4e62f4b58c8ffef6cc9be33b5039c09f2849e9ab Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Fri, 21 Apr 2023 19:46:15 +0800 Subject: [PATCH 61/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 6cce93f9d87b..a18eb280a327 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -230,7 +230,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 | -------- | -------- | -------- | -------- | | TiFlash | `http_port` | 删除 | 废弃 TiFlash HTTP 服务端口(默认 `8123`)。| | TiDB | [`lite-init-stats`](/tidb-configuration-file.md#lite-init-stats-从-v710-版本开始引入) | 新增 | 用于控制 TiDB 启动时是否采用轻量级的统计信息初始化。 | -| TiCDC | [`sink.enable-partition-separator`](/ticdc/ticdc-changefeed-config.md#ticdc-changefeed-配置文件说明) | 修改 | 为了解决同步分区表到存储服务时可能丢数据的问题,默认值从 `false` 修改为 `true`,代表默认会将表中各个分区的数据分不同的目录来存储。建议保持该配置项为 `true` 以避免该问题 [#8581](https://github.com/pingcap/tiflow/issues/8581)。 | +| TiCDC | [`sink.enable-partition-separator`](/ticdc/ticdc-changefeed-config.md#ticdc-changefeed-配置文件说明) | 修改 | 默认值从 `false` 修改为 `true`,代表默认会将表中各个分区的数据分不同的目录来存储。建议保持该配置项为 `true` 以避免同步分区表到存储服务时可能丢数据的问题。 | | | | | | ### 其他 From 3b821cde09fbdd4b84a0c818a1be311315bb9d06 Mon Sep 17 00:00:00 2001 From: ruoxi Date: Sun, 23 Apr 2023 13:06:50 +0800 Subject: [PATCH 62/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index a18eb280a327..23077d1b438f 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -258,6 +258,8 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 - note [#issue](链接) @[贡献者 GitHub ID](链接) - 提升 TiFlash 在存算分离架构下的性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** + - 在 Semi/Anti-Semi Join 中当左表更小时使用左表作为 Build 端 [#7280](https://github.com/pingcap/tiflash/issues/7280) @[yibin87](https://github.com/yibin87) + - + Tools From 33fb5348287a940e613effa024194d4e6c825059 Mon Sep 17 00:00:00 2001 From: Aolin Date: Sun, 23 Apr 2023 14:29:42 +0800 Subject: [PATCH 63/85] Apply suggestions from code review Co-authored-by: Roger Song Co-authored-by: Grace Cai --- releases/release-7.1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 23077d1b438f..31665e6c06ff 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -73,7 +73,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * 统计信息缓存加载策略优化 [#42160](https://github.com/pingcap/tidb/issues/42160) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw:hfxsd** - 开启[统计信息同步加载](/statistics.md#统计信息的加载)后,TiDB 可以大幅减少启动时必须载入的统计信息的数量,并且在加载完成前不接受用户连接。一方面提升了启动时统计信息的加载速度,另一方面也避免了在启动初始阶段由于统计信息不全而引起的性能回退。该特性提升了 TiDB 在复杂运行环境下的稳定性,降低了个别 TiDB 节点重启对整体服务的影响。 + 开启[统计信息同步加载](/statistics.md#统计信息的加载)后,TiDB 可以大幅减少启动时必须载入的统计信息的数量,提升了启动时统计信息的加载速度。该特性增加了 TiDB 在复杂运行环境下的稳定性,降低了个别 TiDB 节点重启对整体服务的影响。 更多信息,请参考[用户文档](/statistics.md#统计信息的加载)。 @@ -111,7 +111,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * Range INTERVAL 分区定义语法成为正式功能 (GA) [#35683](https://github.com/pingcap/tidb/issues/35683) @[mjonss](https://github.com/mjonss) **tw:qiancai** - 在 v6.3.0 中引入的 Range INTERVAL 的分区定义语法成为正式功能 (GA)。通过该语法,你可以根据规则定义 Range 分区,不需要枚举所有分区,可大幅度缩短 Range 分区表的定义语句长度。语义与原有 Range 分区等价。 + 在 v6.3.0 中引入的 Range INTERVAL 的分区定义语法成为正式功能 (GA)。通过该语法,你可以根据所需的间隔(interval)定义 Range 分区,不需要枚举所有分区,可大幅度缩短 Range 分区表的定义语句长度。语义与原有 Range 分区等价。 更多信息,请参考[用户文档](/partitioned-table.md#range-interval-分区)。 From bd2c70d4fcdbb9f143803dd3e72432e18c1fdf54 Mon Sep 17 00:00:00 2001 From: Aolin Date: Sun, 23 Apr 2023 15:57:08 +0800 Subject: [PATCH 64/85] add note and contributors Signed-off-by: Aolin --- releases/release-7.1.0.md | 43 +++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 31665e6c06ff..745fd4baa74d 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -5,6 +5,12 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 # TiDB 7.1.0 Release Notes +TiDB 版本:7.1.0(即将发布) + +> **注意:** +> +> TiDB v7.1.0 尚未正式发布。此 Release Notes 旨在帮助你提前了解即将发布的版本,但其中内容可能会有所调整。本文列出的功能并不保证会包含在最终发布的版本中。 + 在 7.1.0 版本中,你可以获得以下关键特性: ## 功能详情 @@ -66,7 +72,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 * BR 备份恢复工具支持断点恢复 [#42339](https://github.com/pingcap/tidb/issues/42339) @[Leavrth](https://github.com/Leavrth) **tw:Oreoxmt** 快照恢复或日志恢复会因为一些可恢复性错误导致提前结束,例如硬盘空间占满、节点宕机等突发情况。在 TiDB v7.1.0 之前,即使错误被及时处理,之前恢复的进度也会作废,你需要重新进行恢复。对大规模集群来说,会造成大量额外成本。 - + 为了尽可能继续上一次的恢复,从 TiDB v7.1.0 起,备份恢复特性引入了断点恢复的功能。该功能可以在意外中断后保留上一次恢复的大部分进度。 更多信息,请参考[用户文档](/br/br-checkpoint-restore.md)。 @@ -127,7 +133,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 - 支持设置 `detached`,允许该 job 在后台运行。 - 支持使用 `SHOW LOAD DATA` 和 `DROP LOAD DATA` 来管理任务。 - 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 + 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 * `LOAD DATA` SQL 集成 TiDB Lightning Physical Import Mode) 的导入功能,提升导入性能(实验特性)[#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** @@ -213,14 +219,20 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 ### 系统变量 -| 变量名 | 修改类型(包括新增/修改/删除) | 描述 | +| 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| -| `tidb_ddl_distribute_reorg` | 删除 | 重命名为 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入)。 | | [`tidb_enable_tiflash_read_for_write_stmt`](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) | 废弃 | 默认值从 `OFF` 修改为 `ON`,当 [`tidb_allow_mpp = ON`](/system-variables.md#tidb_allow_mpp-从-v50-版本开始引入) 时,优化器将根据 [SQL 模式](/sql-mode.md) 及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。 | +| [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) | 废弃 | 从 v7.1.0 起,该变量被废弃,你可以使用 [`tidb_session_plan_cache_size`](#tidb_session_plan_cache_size-从-v710-版本开始引入) 控制 Plan Cache 最多能够缓存的计划数量。 | +| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size-从-v610-版本开始引入) | 废弃 | 从 v7.1.0 起,该变量被废弃,你可以使用 [`tidb_session_plan_cache_size`](#tidb_session_plan_cache_size-从-v710-版本开始引入) 控制 Plan Cache 最多能够缓存的计划数量。 | +| `tidb_ddl_distribute_reorg` | 删除 | 重命名为 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入)。 | +| [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `OFF` 修改为 `ON`,表示默认开启非 Prepare 语句执行计划缓存。 | +| [`tidb_load_based_replica_read_threshold`](/system-variables.md#tidb_load_based_replica_read_threshold-从-v700-版本开始引入) | 修改 | 该变量从 v7.1.0 开始生效,用于设置基于负载的 replica read 的触发阈值。经进一步的测试后,该变量默认值从 `"0s"` 修改为 `"1s"`。 | | [`tidb_opt_enable_late_materialization`](/system-variables.md#tidb_opt_enable_late_materialization-从-v700-版本开始引入) | 修改 | 默认值从 `OFF` 修改为 `ON`,代表 [TiFlash 延迟物化](/tiflash/tiflash-late-materialization.md)功能默认开启。 | | [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) | 新增 | 控制是否开启分布式执行框架。开启分布式执行后,DDL、Import 等支持的后端任务将会由集群中多个 TiDB 节点共同完成。该变量由 `tidb_ddl_distribute_reorg` 改名而来。| -| [`tidb_opt_fix_control`](/system-variables.md#tidb_opt_fix_control-从-v710-版本开始引入) | 新增 | | 通过设置该变量,你可以更细粒度地控制优化器的行为,并且避免集群升级后优化器行为变化导致的性能回退。 | +| [`tidb_enable_non_prepared_plan_cache_for_dml`](/system-variables.md#tidb_enable_non_prepared_plan_cache_for_dml-从-v710-版本开始引入) | 新增 | 控制非 Prepare 语句执行计划缓存是否支持 DML 语句。 | +| [`tidb_opt_fix_control`](/system-variables.md#tidb_opt_fix_control-从-v710-版本开始引入) | 新增 | 通过设置该变量,你可以更细粒度地控制优化器的行为,并且避免集群升级后优化器行为变化导致的性能回退。 | | [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入) | 新增 | 控制是否使用最小网络数据交换策略。使用该策略时,TiDB 会估算 Broadcast Hash Join 和 Shuffled Hash Join 两种算法所需进行网络交换的数据量,并选择网络交换数据量较小的算法。该功能开启后,[`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_size-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 | +| [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) | 新增 | 控制 Plan Cache 最多能够缓存的计划数量。其中,Prepare 语句执行计划缓存和非 Prepare 语句执行计划缓存共用一个缓存。 | | | | | | | | | @@ -228,10 +240,10 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | -| TiFlash | `http_port` | 删除 | 废弃 TiFlash HTTP 服务端口(默认 `8123`)。| -| TiDB | [`lite-init-stats`](/tidb-configuration-file.md#lite-init-stats-从-v710-版本开始引入) | 新增 | 用于控制 TiDB 启动时是否采用轻量级的统计信息初始化。 | -| TiCDC | [`sink.enable-partition-separator`](/ticdc/ticdc-changefeed-config.md#ticdc-changefeed-配置文件说明) | 修改 | 默认值从 `false` 修改为 `true`,代表默认会将表中各个分区的数据分不同的目录来存储。建议保持该配置项为 `true` 以避免同步分区表到存储服务时可能丢数据的问题。 | -| | | | | +| TiDB | [`lite-init-stats`](/tidb-configuration-file.md#lite-init-stats-从-v710-版本开始引入) | 新增 | 用于控制 TiDB 启动时是否采用轻量级的统计信息初始化。 | +| PD | [`store-limit-version`](/pd-configuration-file.md#store-limit-version-从-v710-版本开始引入) | 新增 | 用于设置 store limit 工作模式。可选择为 `"v1"` 和 `"v2"`。 | +| TiFlash | `http_port` | 删除 | 废弃 TiFlash HTTP 服务端口(默认 `8123`)。 | +| TiCDC | [`sink.enable-partition-separator`](/ticdc/ticdc-changefeed-config.md#ticdc-changefeed-配置文件说明) | 修改 | 默认值从 `false` 修改为 `true`,代表默认会将表中各个分区的数据分不同的目录来存储。建议保持该配置项为 `true` 以避免同步分区表到存储服务时可能丢数据的问题。 | ### 其他 @@ -256,10 +268,8 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 + TiFlash - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - 提升 TiFlash 在存算分离架构下的性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** + - 提升 TiFlash 在存算分离架构下的性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** - 在 Semi/Anti-Semi Join 中当左表更小时使用左表作为 Build 端 [#7280](https://github.com/pingcap/tiflash/issues/7280) @[yibin87](https://github.com/yibin87) - - + Tools @@ -341,4 +351,11 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 感谢来自 TiDB 社区的贡献者们: -- [贡献者 GitHub ID]() +- [ethercflow](https://github.com/ethercflow) +- [hihihuhu](https://github.com/hihihuhu) +- [jiyfhust](https://github.com/jiyfhust) +- [L-maple](https://github.com/L-maple) +- [lqs](https://github.com/lqs) +- [pingandb](https://github.com/pingandb) +- [yorkhellen](https://github.com/yorkhellen) +- [yujiarista](https://github.com/yujiarista) From 09d1c4fc558d151981c0856b24add5261e917a34 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sun, 23 Apr 2023 16:16:31 +0800 Subject: [PATCH 65/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 745fd4baa74d..e0c056ec4c9a 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -127,7 +127,7 @@ TiDB 版本:7.1.0(即将发布) - 支持从 S3、GCS 导入数据。 - 支持导入 Parquet 文件数据。 - - 支持解析源文件中的下列字符集:`ascii`、`latin1`、`binary`、`gbk`、`utf8mbd` 字符集 + - 支持解析源文件中的下列字符集:`ascii`、`latin1`、`binary`、`gbk`、`utf8mbd` - 支持设置 `FIELDS DEFINED NULL BY` 将源文件的指定的值转换为 `NULL` 写入目标表。 - 支持设置 1 个 `bath_size` 即 1 个 batch 插入到目标表的行数,提升写入性能。 - 支持设置 `detached`,允许该 job 在后台运行。 From 21389eb96c63021e763b40faaf84aaf91583b013 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sun, 23 Apr 2023 16:36:45 +0800 Subject: [PATCH 66/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index e0c056ec4c9a..b033ec143dd3 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -177,11 +177,11 @@ TiDB 版本:7.1.0(即将发布) 获取充足的信息是 SQL 性能诊断的关键。在 v7.1.0 中,TiDB 持续向各种诊断工具中添加优化器运行信息,可以更好地解释执行计划如何被选择,协助对 SQL 性能问题进行定位。这些信息包括: - * [`PLAN REPLAYER`](/sql-plan-replayer.md#使用-plan-replayer-保存和恢复集群现场信息) 的输出中增加 `debug_trace.json` 文件。 + * [`PLAN REPLAYER`](/sql-plan-replayer.md) 的输出中增加 `debug_trace.json` 文件。 * [`EXPLAIN`](/explain-walkthrough.md) 的输出中,为 `operator info` 添加部分统计信息详情。 * 为[`慢日志`](/identify-slow-queries.md)的 `Stats` 字段添加部分统计信息详情。 - 更多信息,请参考[使用 `PLAN REPLAYER` 保存和恢复集群线程信息](/sql-plan-replayer.md#使用-plan-replayer-保存和恢复集群现场信息),[使用 `EXPLAIN` 解读执行计划](/explain-walkthrough.md)和[`慢日志查询`](/identify-slow-queries.md)。 + 更多信息,请参考[使用 `PLAN REPLAYER` 保存和恢复集群线程信息](/sql-plan-replayer.md),[使用 `EXPLAIN` 解读执行计划](/explain-walkthrough.md)、[`慢日志查询`](/identify-slow-queries.md)。 ### 安全 From cdb5f2fccc703d3b99af34a6b31f272cd95802ec Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sun, 23 Apr 2023 20:37:45 +0800 Subject: [PATCH 67/85] Apply suggestions from code review --- releases/release-7.1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index b033ec143dd3..0eda71856d29 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -121,7 +121,7 @@ TiDB 版本:7.1.0(即将发布) 更多信息,请参考[用户文档](/partitioned-table.md#range-interval-分区)。 -* `LOAD DATA` SQL 支持从 S3、GCS 导入数据,支持任务管理等功能 GA [#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** +* `LOAD DATA` 部分功能 GA [#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** 以下 `LOAD DATA` 新增的功能在 TiDB v7.1.0 GA: @@ -135,7 +135,7 @@ TiDB 版本:7.1.0(即将发布) 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 -* `LOAD DATA` SQL 集成 TiDB Lightning Physical Import Mode) 的导入功能,提升导入性能(实验特性)[#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** +* `LOAD DATA` SQL 集成 TiDB Lightning Physical Import Mode 的导入功能,提升导入性能(实验特性)[#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** `LOAD DATA` 集成 TiDB Lightning 的物理导入模式 (Physical Import Mode),你可以通过设置 `WITH import_mode = 'PHYSICAL'` 开启。相比逻辑导入模式 (Logical Import Mode),可成倍提升导入数据的性能。 From 6de0e10cb7083ac23488ee1ccd33d029c04cfe4d Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Sun, 23 Apr 2023 20:38:27 +0800 Subject: [PATCH 68/85] Update releases/release-7.1.0.md --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 0eda71856d29..8258e6a315f9 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -135,7 +135,7 @@ TiDB 版本:7.1.0(即将发布) 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 -* `LOAD DATA` SQL 集成 TiDB Lightning Physical Import Mode 的导入功能,提升导入性能(实验特性)[#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** +* `LOAD DATA` 集成 TiDB Lightning Physical Import Mode 的导入功能,提升导入性能(实验特性)[#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** `LOAD DATA` 集成 TiDB Lightning 的物理导入模式 (Physical Import Mode),你可以通过设置 `WITH import_mode = 'PHYSICAL'` 开启。相比逻辑导入模式 (Logical Import Mode),可成倍提升导入数据的性能。 From acd9bdaf1f488431b5152b1f74ca5332db83d626 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 24 Apr 2023 11:18:56 +0800 Subject: [PATCH 69/85] Apply suggestions from code review --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 8258e6a315f9..133e2cb30492 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -143,7 +143,7 @@ TiDB 版本:7.1.0(即将发布) * `LOAD DATA` 支持并发导入,提升导入性能(实验特性)[#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** - 之前 `LOAD DATA` 不支持并发导入数据,性能较差。在 TiDB v7.1.0 开始支持设置并发导入的参数 `WITH thread=`,通过提升并发可以提升导入的性能。在实验室环境,相比上个版本,测试逻辑导入性能有接近 4 倍的提升。 + 之前 `LOAD DATA` 不支持并发导入数据,性能不如预期。在 TiDB v7.1.0 开始支持设置并发导入的参数 `WITH thread=`,通过提升并发可以提升导入的性能。在实验室环境,相比上个版本,测试负载下的逻辑导入性能有接近 4 倍的提升。 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 From 29fb559b22abbb36e3491f3baa76bcfee3cf8fc4 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 24 Apr 2023 14:38:16 +0800 Subject: [PATCH 70/85] Apply suggestions from code review Co-authored-by: Aolin --- releases/release-7.1.0.md | 40 +++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 133e2cb30492..768a80f4a35b 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -53,13 +53,13 @@ TiDB 版本:7.1.0(即将发布) ### 稳定性 -* 资源管控 GA [#38825](https://github.com/pingcap/tidb/issues/38825) @[nolouch](https://github.com/nolouch) @[BornChanger](https://github.com/BornChanger) @[glorv](https://github.com/glorv) @[tiancaiamao](https://github.com/tiancaiamao) @[Connor1996](https://github.com/Connor1996) @[JmPotato](https://github.com/JmPotato) @[hnes](https://github.com/hnes) @[CabinfeverB](https://github.com/CabinfeverB) @[HuSharp](https://github.com/HuSharp) **tw:hfxsd** +* 资源管控成为正式功能 (GA) [#38825](https://github.com/pingcap/tidb/issues/38825) @[nolouch](https://github.com/nolouch) @[BornChanger](https://github.com/BornChanger) @[glorv](https://github.com/glorv) @[tiancaiamao](https://github.com/tiancaiamao) @[Connor1996](https://github.com/Connor1996) @[JmPotato](https://github.com/JmPotato) @[hnes](https://github.com/hnes) @[CabinfeverB](https://github.com/CabinfeverB) @[HuSharp](https://github.com/HuSharp) **tw:hfxsd** - TiDB 持续增强资源管控能力,并将这个特性 GA。该特性将会极大地提升 TiDB 集群的资源利用效率和性能表现。资源管控特性的引入对 TiDB 具有里程碑的意义,你可以将一个分布式数据库集群划分成多个逻辑单元,将不同的数据库用户映射到对应的资源组中,并根据需要设置每个资源组的配额。当集群资源紧张时,来自同一个资源组的会话所使用的全部资源将被限制在配额内,避免其中一个资源组过度消耗,从而影响其他资源组中的会话正常运行。 + TiDB 持续增强资源管控能力,在 v7.1.0 该功能正式 GA。该特性将极大地提升 TiDB 集群的资源利用率和性能表现。资源管控特性的引入对 TiDB 具有里程碑的意义,你可以将一个分布式数据库集群划分成多个逻辑单元,将不同的数据库用户映射到对应的资源组中,并根据实际需求设置每个资源组的配额。当集群资源紧张时,同一资源组内的会话所使用的全部资源将受到配额限制,防止某一资源组的过度消耗对其他资源组的会话造成影响。 - 该特性也可以将多个来自不同系统的中小型应用合入一个 TiDB 集群中,个别应用的负载提升,不会影响其他应用的正常运行。而在系统负载较低的时候,繁忙的应用即使超过设定的读写配额,也仍然可以被分配到所需的系统资源,达到资源的最大化利用。此外,合理利用资源管控特性可以减少集群数量,降低运维难度及管理成本。 + 该特性也可以将多个来自不同系统的中小型应用整合到同一个 TiDB 集群中。即使某个应用的负载增加,也不会影响其他应用的正常运行。而在系统负载较低的时候,繁忙的应用即使超出设定的读写配额,仍可获得所需系统资源,实现资源的最大化利用。此外,合理利用资源管控特性可以减少集群数量,降低运维难度及管理成本。 - 在 TiDB v7.1.0 中,该特性增加了基于实际负载和硬件部署来估算系统容量上限的能力,为你进行容量规划提供了更准确的参考,协助你更好地管理 TiDB 的资源分配,从而满足企业级场景的稳定性需要。 + 在 TiDB v7.1.0 中,该特性增加了基于实际负载和硬件部署来估算系统容量上限的能力,为你进行容量规划提供更准确的参考。这有助于你更好地管理 TiDB 的资源分配,从而满足企业级场景的稳定性需求。 更多信息,请参考[用户文档](/tidb-resource-control.md)。 @@ -77,9 +77,9 @@ TiDB 版本:7.1.0(即将发布) 更多信息,请参考[用户文档](/br/br-checkpoint-restore.md)。 -* 统计信息缓存加载策略优化 [#42160](https://github.com/pingcap/tidb/issues/42160) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw:hfxsd** +* 优化统计信息缓存加载策略 [#42160](https://github.com/pingcap/tidb/issues/42160) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw:hfxsd** - 开启[统计信息同步加载](/statistics.md#统计信息的加载)后,TiDB 可以大幅减少启动时必须载入的统计信息的数量,提升了启动时统计信息的加载速度。该特性增加了 TiDB 在复杂运行环境下的稳定性,降低了个别 TiDB 节点重启对整体服务的影响。 + 开启统计信息同步加载后,TiDB 可以大幅减少启动时必须载入的统计信息的数量,从而提升启动过程中统计信息的加载速度。该特性提升了 TiDB 在复杂运行环境下的稳定性,并降低了部分 TiDB 节点重启对整体服务的影响。 更多信息,请参考[用户文档](/statistics.md#统计信息的加载)。 @@ -123,27 +123,27 @@ TiDB 版本:7.1.0(即将发布) * `LOAD DATA` 部分功能 GA [#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** - 以下 `LOAD DATA` 新增的功能在 TiDB v7.1.0 GA: + 在 TiDB v7.1.0 中,以下 `LOAD DATA` 功能 GA: - 支持从 S3、GCS 导入数据。 - - 支持导入 Parquet 文件数据。 - - 支持解析源文件中的下列字符集:`ascii`、`latin1`、`binary`、`gbk`、`utf8mbd` - - 支持设置 `FIELDS DEFINED NULL BY` 将源文件的指定的值转换为 `NULL` 写入目标表。 - - 支持设置 1 个 `bath_size` 即 1 个 batch 插入到目标表的行数,提升写入性能。 - - 支持设置 `detached`,允许该 job 在后台运行。 - - 支持使用 `SHOW LOAD DATA` 和 `DROP LOAD DATA` 来管理任务。 + - 支持导入 Parquet 格式的数据。 + - 支持解析源文件中的下列字符集:`ascii`、`latin1`、`binary`、`gbk` 和 `utf8mbd` + - 支持设置 `FIELDS DEFINED NULL BY` 将源文件中的指定值转换为 `NULL` 并写入目标表。 + - 支持设置 `batch_size` 指定批量写入目标表的行数,从而提升写入性能。 + - 支持设置 `detached`,允许指定任务在后台运行。 + - 支持使用 `SHOW LOAD DATA` 和 `DROP LOAD DATA` 管理任务。 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 * `LOAD DATA` 集成 TiDB Lightning Physical Import Mode 的导入功能,提升导入性能(实验特性)[#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** - `LOAD DATA` 集成 TiDB Lightning 的物理导入模式 (Physical Import Mode),你可以通过设置 `WITH import_mode = 'PHYSICAL'` 开启。相比逻辑导入模式 (Logical Import Mode),可成倍提升导入数据的性能。 + `LOAD DATA` 集成 TiDB Lightning 的物理导入模式 (Physical Import Mode),你可以通过设置 `WITH import_mode = 'PHYSICAL'` 开启。相比逻辑导入模式 (Logical Import Mode),可成倍提升数据导入的性能。 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 * `LOAD DATA` 支持并发导入,提升导入性能(实验特性)[#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** - 之前 `LOAD DATA` 不支持并发导入数据,性能不如预期。在 TiDB v7.1.0 开始支持设置并发导入的参数 `WITH thread=`,通过提升并发可以提升导入的性能。在实验室环境,相比上个版本,测试负载下的逻辑导入性能有接近 4 倍的提升。 + 在 v7.1.0 之前版本中,`LOAD DATA` 不支持并发导入数据,导致性能未达到预期。从 v7.1.0 开始,`LOAD DATA` 支持并发导入数据,你可以通过 `WITH thread=` 提高并发度以提升导入的性能。在内部测试中,相较于 v7.0.0,测试负载下的逻辑导入性能提升了近 4 倍。 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 @@ -175,13 +175,13 @@ TiDB 版本:7.1.0(即将发布) * 增加优化器诊断信息 [#43122](https://github.com/pingcap/tidb/issues/43122) @[time-and-fate](https://github.com/time-and-fate) **tw:hfxsd** - 获取充足的信息是 SQL 性能诊断的关键。在 v7.1.0 中,TiDB 持续向各种诊断工具中添加优化器运行信息,可以更好地解释执行计划如何被选择,协助对 SQL 性能问题进行定位。这些信息包括: + 获取充足的信息是 SQL 性能诊断的关键。在 v7.1.0 中,TiDB 持续为各种诊断工具增加优化器运行信息,以便更好地解释执行计划如何被选择,从而协助定位 SQL 性能问题。这些信息包括: - * [`PLAN REPLAYER`](/sql-plan-replayer.md) 的输出中增加 `debug_trace.json` 文件。 - * [`EXPLAIN`](/explain-walkthrough.md) 的输出中,为 `operator info` 添加部分统计信息详情。 + * 在 [`PLAN REPLAYER`](/sql-plan-replayer.md) 的输出中增加 `debug_trace.json` 文件。 + * 在 [`EXPLAIN`](/explain-walkthrough.md) 的输出中为 `operator info` 添加部分统计信息详情。 * 为[`慢日志`](/identify-slow-queries.md)的 `Stats` 字段添加部分统计信息详情。 - 更多信息,请参考[使用 `PLAN REPLAYER` 保存和恢复集群线程信息](/sql-plan-replayer.md),[使用 `EXPLAIN` 解读执行计划](/explain-walkthrough.md)、[`慢日志查询`](/identify-slow-queries.md)。 + 更多信息,请参考[使用 `PLAN REPLAYER` 保存和恢复集群线程信息](/sql-plan-replayer.md)、[使用 `EXPLAIN` 解读执行计划](/explain-walkthrough.md)和[慢日志查询](/identify-slow-queries.md)。 ### 安全 @@ -215,7 +215,7 @@ TiDB 版本:7.1.0(即将发布) 如果你已经将 TiFlash 升级到 v7.1.0,那么在升级 TiDB 到 v7.1.0 的过程中,TiDB 无法读取 TiFlash 系统表([`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md))。 -* [`SHOW LOAD DATA`](/sql-statements/sql-statement-show-load-data.md) 的返回值中废弃了参数 `Loaded_File_Size`,替换为参数 `Imported_Rows` **tw:hfxsd** +* [`SHOW LOAD DATA`](/sql-statements/sql-statement-show-load-data.md) 的返回值中废弃了参数 `Loaded_File_Size`,修改为参数 `Imported_Rows` **tw:hfxsd** ### 系统变量 From 6179ea68ebc161fcf246bdd1cd44ee356f52edd5 Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 24 Apr 2023 16:56:29 +0800 Subject: [PATCH 71/85] update improvements > TiFlash --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 768a80f4a35b..f217463e64b5 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -269,7 +269,7 @@ TiDB 版本:7.1.0(即将发布) + TiFlash - 提升 TiFlash 在存算分离架构下的性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** - - 在 Semi/Anti-Semi Join 中当左表更小时使用左表作为 Build 端 [#7280](https://github.com/pingcap/tiflash/issues/7280) @[yibin87](https://github.com/yibin87) + - 支持在 Semi Join 或 Anti Semi Join 中,通过选择较小的表作为 Build 端来优化查询性能 [#7280](https://github.com/pingcap/tiflash/issues/7280) @[yibin87](https://github.com/yibin87) + Tools From ea6e65c28b57ab202ca429a98725edbebbef97af Mon Sep 17 00:00:00 2001 From: Aolin Date: Mon, 24 Apr 2023 17:05:02 +0800 Subject: [PATCH 72/85] update TOC Signed-off-by: Aolin --- TOC.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/TOC.md b/TOC.md index 0f9e051ce03a..e6d40b0669e9 100644 --- a/TOC.md +++ b/TOC.md @@ -4,7 +4,7 @@ - [文档中心](https://docs.pingcap.com/zh) - 关于 TiDB - [TiDB 简介](/overview.md) - - [TiDB 7.0 Release Notes](/releases/release-7.0.0.md) + - [TiDB 7.1 (upcoming) Release Notes](/releases/release-7.1.0.md) - [功能概览](/basic-features.md) - [与 MySQL 的兼容性](/mysql-compatibility.md) - [使用限制](/tidb-limitations.md) @@ -984,6 +984,8 @@ - [版本发布时间线](/releases/release-timeline.md) - [TiDB 版本规则](/releases/versioning.md) - [TiDB 离线包](/binary-package.md) + - v7.1 (upcoming) + - [7.1.0](/releases/release-7.1.0.md) - v7.0 - [7.0.0-DMR](/releases/release-7.0.0.md) - v6.6 From 133e4e76424c1add821ce7f37d1226b1ad7e5bb7 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 25 Apr 2023 11:57:07 +0800 Subject: [PATCH 73/85] add highlights Signed-off-by: Aolin --- releases/release-7.1.0.md | 54 ++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index f217463e64b5..e8fd12650bdb 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -5,7 +5,7 @@ summary: 了解 TiDB 7.1.0 版本的新功能、兼容性变更、改进提升 # TiDB 7.1.0 Release Notes -TiDB 版本:7.1.0(即将发布) +TiDB 版本:7.1.0 (upcoming) > **注意:** > @@ -13,9 +13,39 @@ TiDB 版本:7.1.0(即将发布) 在 7.1.0 版本中,你可以获得以下关键特性: -## 功能详情 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
分类功能描述
可扩展性与性能会话级别内无需手动准备 SQL 执行计划缓存 (GA)支持在会话级别自动重用执行计划缓存,可以减少编译并缩短相同 SQL 查询的时间,而无需事先手动准备 Prepare Statement 语句。
基于负载的副本读取在读热点场景中,TiDB 可以将热点 TiKV 节点的读请求转发到副本。该功能有效地打散了读热点并优化了集群资源的利用。你可以通过调整系统变量 tidb_load_based_replica_read_threshold 控制基于负载的副本读取的触发阈值。
SQL多值索引 (GA)引入 MySQL 兼容的多值索引,增强 JSON 类型,提升 TiDB 对 MySQL 8.0 的兼容性。该功能提升了对多值列进行成员检查的效率。 +
生成列 (GA)生成列 (Generated Columns) 的值是通过实时计算列定义中的 SQL 表达式得到的。该功能将一些应用逻辑推向数据库层,从而提升效率。 +
-### 可扩展性 +## 功能详情 ### 性能 @@ -83,14 +113,6 @@ TiDB 版本:7.1.0(即将发布) 更多信息,请参考[用户文档](/statistics.md#统计信息的加载)。 -### 高可用 - -* 功能标题 [#issue号](链接) @[贡献者 GitHub ID](链接) - - 功能描述(需要包含这个功能是什么、在什么场景下对用户有什么价值、怎么用) - - 更多信息,请参考[用户文档](链接)。 - ### SQL 功能 * 支持通过 `INSERT INTO SELECT` 语句保存 TiFlash 查询结果 (GA) [#37515](https://github.com/pingcap/tidb/issues/37515) @[gengliqi](https://github.com/gengliqi) **tw:qiancai** @@ -189,14 +211,6 @@ TiDB 版本:7.1.0(即将发布) 从 v7.1.0 起,TiFlash 在向 TiDB 提供 [`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md) 系统表的查询服务时,不再使用 HTTP 端口,而是使用 gRPC 端口,从而避免 HTTP 服务的安全风险。 -### 数据迁移 - -* TiCDC 优化 DDL 同步操作 [#8686](https://github.com/pingcap/tiflow/issues/8686) @[nongfushanquan](https://github.com/nongfushanquan) **tw:ran-huang** - - 在 v7.1.0 之前,当用户在一个大表上进行 DDL 操作时,如果 DDL 操作影响该表中的所有行(例如添加或删除列),TiCDC 的同步延迟会显著增加。从 v7.1.0 开始,TiCDC 对此进行了优化,将同步延迟降低到 10 秒以内,以减轻 DDL 操作对下游延迟的影响。 - - 更多信息,请参考[用户文档](链接)。 - ## 兼容性变更 > **注意:** @@ -269,7 +283,7 @@ TiDB 版本:7.1.0(即将发布) + TiFlash - 提升 TiFlash 在存算分离架构下的性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** - - 支持在 Semi Join 或 Anti Semi Join 中,通过选择较小的表作为 Build 端来优化查询性能 [#7280](https://github.com/pingcap/tiflash/issues/7280) @[yibin87](https://github.com/yibin87) + - 支持在 Semi Join 或 Anti Semi Join 中,通过选择较小的表作为 Build 端来优化查询性能 [#7280](https://github.com/pingcap/tiflash/issues/7280) @[yibin87](https://github.com/yibin87) + Tools From 21bd783299f4a45e7cc8e2f37f64aae4bfbd3898 Mon Sep 17 00:00:00 2001 From: Ran Date: Tue, 25 Apr 2023 15:35:13 +0800 Subject: [PATCH 74/85] Apply suggestions from code review Co-authored-by: tangenta --- releases/release-7.1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index e8fd12650bdb..563c122b3087 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -95,9 +95,9 @@ TiDB 版本:7.1.0 (upcoming) * 支持 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,提升容错性和自动恢复能力 [#42164](https://github.com/pingcap/tidb/issues/42164) @[tangenta](https://github.com/tangenta) **tw:ran-huang** - TiDB v7.1.0 引入 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,可以大幅提升 Fast Online DDL 的容错性和自动恢复能力。即使在 DDL Owner 切换的情况下,TiDB 也能够通过周期性记录并同步 DDL 进度,让新的 DDL Owner 仍能以 Fast Online DDL 的方式执行切换前的 DDL 语句,无需手动取消和重新执行 DDL 语句,从而让 DDL 执行更加稳定高效。 + TiDB v7.1.0 引入 [Fast Online DDL](/ddl-introduction.md) 的检查点机制,可以大幅提升 Fast Online DDL 的容错性和自动恢复能力。即使 TiDB owner 因故障重启或者切换,TiDB 也能够通过自动定期保存的检查点恢复部分进度,从而让 DDL 执行更加稳定高效。 - 更多信息,请参考[用户文档](/ddl-introduction.md)。 + 更多信息,请参考[用户文档](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入)。 * BR 备份恢复工具支持断点恢复 [#42339](https://github.com/pingcap/tidb/issues/42339) @[Leavrth](https://github.com/Leavrth) **tw:Oreoxmt** From beddb5f5d951f661e6504b0e823f9662ab832f95 Mon Sep 17 00:00:00 2001 From: Aolin Date: Tue, 25 Apr 2023 16:49:05 +0800 Subject: [PATCH 75/85] Apply suggestions from code review --- releases/release-7.1.0.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 563c122b3087..2099e2324d6e 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -119,7 +119,7 @@ TiDB 版本:7.1.0 (upcoming) 从 v6.5.0 起,TiDB 支持下推 `INSERT INTO SELECT` 语句中的 `SELECT` 子句(分析查询)到 TiFlash,你可以将 TiFlash 的查询结果方便地保存到 `INSERT INTO` 指定的 TiDB 表中供后续分析使用,起到了结果缓存(即结果物化)的效果。 - 在 v7.1.0 版本中,该功能正式 GA。当 TiDB 执行 `INSERT INTO SELECT` 语句中的 `SELECT` 子句时,优化器将根据 [SQL 模式](/sql-mode.md) 及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。因此,在实验特性阶段引入的系统变量 `tidb_enable_tiflash_read_for_write_stmt` 将被废弃。需要注意的是,TiFlash 对于 `INSERT INTO SELECT` 语句的计算规则不满足 `STRICT SQL Mode` 要求,因此只有当前会话的 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`),TiDB 才允许将 `INSERT INTO SELECT` 语句中的 `SELECT` 子句下推至 TiFlash。 + 在 v7.1.0 版本中,该功能正式 GA。当 TiDB 执行 `INSERT INTO SELECT` 语句中的 `SELECT` 子句时,优化器将根据 [SQL 模式](/sql-mode.md)及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。因此,在实验特性阶段引入的系统变量 `tidb_enable_tiflash_read_for_write_stmt` 将被废弃。需要注意的是,TiFlash 对于 `INSERT INTO SELECT` 语句的计算规则不满足 `STRICT SQL Mode` 要求,因此只有当前会话的 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`),TiDB 才允许将 `INSERT INTO SELECT` 语句中的 `SELECT` 子句下推至 TiFlash。 更多信息,请参考[用户文档](/tiflash/tiflash-results-materialization.md)。 @@ -235,7 +235,7 @@ TiDB 版本:7.1.0 (upcoming) | 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| -| [`tidb_enable_tiflash_read_for_write_stmt`](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) | 废弃 | 默认值从 `OFF` 修改为 `ON`,当 [`tidb_allow_mpp = ON`](/system-variables.md#tidb_allow_mpp-从-v50-版本开始引入) 时,优化器将根据 [SQL 模式](/sql-mode.md) 及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。 | +| [`tidb_enable_tiflash_read_for_write_stmt`](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) | 废弃 | 从 v7.1.0 开始,该变量废弃并且默认值从 `OFF` 修改为 `ON`。当 [`tidb_allow_mpp = ON`](/system-variables.md#tidb_allow_mpp-从-v50-版本开始引入) 时,优化器将根据 [SQL 模式](/sql-mode.md)及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。 | | [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) | 废弃 | 从 v7.1.0 起,该变量被废弃,你可以使用 [`tidb_session_plan_cache_size`](#tidb_session_plan_cache_size-从-v710-版本开始引入) 控制 Plan Cache 最多能够缓存的计划数量。 | | [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size-从-v610-版本开始引入) | 废弃 | 从 v7.1.0 起,该变量被废弃,你可以使用 [`tidb_session_plan_cache_size`](#tidb_session_plan_cache_size-从-v710-版本开始引入) 控制 Plan Cache 最多能够缓存的计划数量。 | | `tidb_ddl_distribute_reorg` | 删除 | 重命名为 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入)。 | @@ -245,6 +245,7 @@ TiDB 版本:7.1.0 (upcoming) | [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) | 新增 | 控制是否开启分布式执行框架。开启分布式执行后,DDL、Import 等支持的后端任务将会由集群中多个 TiDB 节点共同完成。该变量由 `tidb_ddl_distribute_reorg` 改名而来。| | [`tidb_enable_non_prepared_plan_cache_for_dml`](/system-variables.md#tidb_enable_non_prepared_plan_cache_for_dml-从-v710-版本开始引入) | 新增 | 控制非 Prepare 语句执行计划缓存是否支持 DML 语句。 | | [`tidb_opt_fix_control`](/system-variables.md#tidb_opt_fix_control-从-v710-版本开始引入) | 新增 | 通过设置该变量,你可以更细粒度地控制优化器的行为,并且避免集群升级后优化器行为变化导致的性能回退。 | +| [`tidb_plan_cache_max_plan_size`](/system-variables.md#tidb_plan_cache_max_plan_size-从-v710-版本开始引入) | 新增 | 可以缓存的 Prepare 或非 Prepare 语句执行计划的最大大小。 | | [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入) | 新增 | 控制是否使用最小网络数据交换策略。使用该策略时,TiDB 会估算 Broadcast Hash Join 和 Shuffled Hash Join 两种算法所需进行网络交换的数据量,并选择网络交换数据量较小的算法。该功能开启后,[`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_size-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 | | [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) | 新增 | 控制 Plan Cache 最多能够缓存的计划数量。其中,Prepare 语句执行计划缓存和非 Prepare 语句执行计划缓存共用一个缓存。 | | | | | From 27fc5f291fa9b3624bea6fac20565ecdbf643ca4 Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 26 Apr 2023 10:41:47 +0800 Subject: [PATCH 76/85] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 2099e2324d6e..46813412fd42 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -39,7 +39,7 @@ TiDB 版本:7.1.0 (upcoming) 生成列 (GA) - 生成列 (Generated Columns) 的值是通过实时计算列定义中的 SQL 表达式得到的。该功能将一些应用逻辑推向数据库层,从而提升效率。 + 生成列 (Generated Columns) 的值是通过实时计算列定义中的 SQL 表达式得到的。该功能将一些应用逻辑推向数据库层,从而提升查询效率。 From 9bed414b3b00028e359cbe21432c0733ea1cd39a Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 26 Apr 2023 13:46:48 +0800 Subject: [PATCH 77/85] highlights: add links Signed-off-by: Aolin --- releases/release-7.1.0.md | 123 +++----------------------------------- 1 file changed, 9 insertions(+), 114 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 46813412fd42..93e63f6c10e3 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -24,21 +24,20 @@ TiDB 版本:7.1.0 (upcoming) 可扩展性与性能 - 会话级别内无需手动准备 SQL 执行计划缓存 (GA) + 会话级别内无需手动准备 SQL 执行计划缓存 (GA) 支持在会话级别自动重用执行计划缓存,可以减少编译并缩短相同 SQL 查询的时间,而无需事先手动准备 Prepare Statement 语句。 - 基于负载的副本读取 + 基于负载的副本读取 在读热点场景中,TiDB 可以将热点 TiKV 节点的读请求转发到副本。该功能有效地打散了读热点并优化了集群资源的利用。你可以通过调整系统变量 tidb_load_based_replica_read_threshold 控制基于负载的副本读取的触发阈值。 SQL - 多值索引 (GA) - 引入 MySQL 兼容的多值索引,增强 JSON 类型,提升 TiDB 对 MySQL 8.0 的兼容性。该功能提升了对多值列进行成员检查的效率。 - + 多值索引 (GA) + 引入 MySQL 兼容的多值索引,增强 JSON 类型,提升 TiDB 对 MySQL 8.0 的兼容性。该功能提升了对多值列进行成员检查的效率。 - 生成列 (GA) + 生成列 (GA) 生成列 (Generated Columns) 的值是通过实时计算列定义中的 SQL 表达式得到的。该功能将一些应用逻辑推向数据库层,从而提升查询效率。 @@ -187,7 +186,6 @@ TiDB 版本:7.1.0 (upcoming) ```sql ADMIN PAUSE DDL JOBS 1,2; - ADMIN RESUME DDL JOBS 1,2; ``` @@ -217,12 +215,6 @@ TiDB 版本:7.1.0 (upcoming) > > 以下为从 v7.0.0 升级至当前版本 (v7.1.0) 所需兼容性变更信息。如果从 v6.6.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 release notes 中提到的兼容性变更信息。 -### MySQL 兼容性 - -* 兼容性 1 - -* 兼容性 2 - ### 行为变更 * 为了提高安全性,TiFlash 废弃了 HTTP 服务端口(默认 `8123`),采用 gRPC 端口作为替代 **tw:qiancai** @@ -236,8 +228,8 @@ TiDB 版本:7.1.0 (upcoming) | 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| | [`tidb_enable_tiflash_read_for_write_stmt`](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) | 废弃 | 从 v7.1.0 开始,该变量废弃并且默认值从 `OFF` 修改为 `ON`。当 [`tidb_allow_mpp = ON`](/system-variables.md#tidb_allow_mpp-从-v50-版本开始引入) 时,优化器将根据 [SQL 模式](/sql-mode.md)及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。 | -| [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) | 废弃 | 从 v7.1.0 起,该变量被废弃,你可以使用 [`tidb_session_plan_cache_size`](#tidb_session_plan_cache_size-从-v710-版本开始引入) 控制 Plan Cache 最多能够缓存的计划数量。 | -| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size-从-v610-版本开始引入) | 废弃 | 从 v7.1.0 起,该变量被废弃,你可以使用 [`tidb_session_plan_cache_size`](#tidb_session_plan_cache_size-从-v710-版本开始引入) 控制 Plan Cache 最多能够缓存的计划数量。 | +| [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) | 废弃 | 从 v7.1.0 起,该变量被废弃,你可以使用 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) 控制 Plan Cache 最多能够缓存的计划数量。 | +| [`tidb_prepared_plan_cache_size`](/system-variables.md#tidb_prepared_plan_cache_size-从-v610-版本开始引入) | 废弃 | 从 v7.1.0 起,该变量被废弃,你可以使用 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) 控制 Plan Cache 最多能够缓存的计划数量。 | | `tidb_ddl_distribute_reorg` | 删除 | 重命名为 [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入)。 | | [`tidb_enable_non_prepared_plan_cache`](/system-variables.md#tidb_enable_non_prepared_plan_cache) | 修改 | 经进一步的测试后,该变量默认值从 `OFF` 修改为 `ON`,表示默认开启非 Prepare 语句执行计划缓存。 | | [`tidb_load_based_replica_read_threshold`](/system-variables.md#tidb_load_based_replica_read_threshold-从-v700-版本开始引入) | 修改 | 该变量从 v7.1.0 开始生效,用于设置基于负载的 replica read 的触发阈值。经进一步的测试后,该变量默认值从 `"0s"` 修改为 `"1s"`。 | @@ -245,123 +237,26 @@ TiDB 版本:7.1.0 (upcoming) | [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) | 新增 | 控制是否开启分布式执行框架。开启分布式执行后,DDL、Import 等支持的后端任务将会由集群中多个 TiDB 节点共同完成。该变量由 `tidb_ddl_distribute_reorg` 改名而来。| | [`tidb_enable_non_prepared_plan_cache_for_dml`](/system-variables.md#tidb_enable_non_prepared_plan_cache_for_dml-从-v710-版本开始引入) | 新增 | 控制非 Prepare 语句执行计划缓存是否支持 DML 语句。 | | [`tidb_opt_fix_control`](/system-variables.md#tidb_opt_fix_control-从-v710-版本开始引入) | 新增 | 通过设置该变量,你可以更细粒度地控制优化器的行为,并且避免集群升级后优化器行为变化导致的性能回退。 | -| [`tidb_plan_cache_max_plan_size`](/system-variables.md#tidb_plan_cache_max_plan_size-从-v710-版本开始引入) | 新增 | 可以缓存的 Prepare 或非 Prepare 语句执行计划的最大大小。 | +| [`tidb_plan_cache_max_plan_size`](/system-variables.md#tidb_plan_cache_max_plan_size-从-v710-版本开始引入) | 新增 | 控制可以缓存的 Prepare 或非 Prepare 语句执行计划的最大大小。 | | [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入) | 新增 | 控制是否使用最小网络数据交换策略。使用该策略时,TiDB 会估算 Broadcast Hash Join 和 Shuffled Hash Join 两种算法所需进行网络交换的数据量,并选择网络交换数据量较小的算法。该功能开启后,[`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_size-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 | | [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) | 新增 | 控制 Plan Cache 最多能够缓存的计划数量。其中,Prepare 语句执行计划缓存和非 Prepare 语句执行计划缓存共用一个缓存。 | -| | | | -| | | | ### 配置文件参数 | 配置文件 | 配置项 | 修改类型 | 描述 | | -------- | -------- | -------- | -------- | | TiDB | [`lite-init-stats`](/tidb-configuration-file.md#lite-init-stats-从-v710-版本开始引入) | 新增 | 用于控制 TiDB 启动时是否采用轻量级的统计信息初始化。 | -| PD | [`store-limit-version`](/pd-configuration-file.md#store-limit-version-从-v710-版本开始引入) | 新增 | 用于设置 store limit 工作模式。可选择为 `"v1"` 和 `"v2"`。 | +| PD | [`store-limit-version`](/pd-configuration-file.md#store-limit-version-从-v710-版本开始引入) | 新增 | 用于设置 store limit 工作模式。可选值为 `"v1"` 和 `"v2"`。 | | TiFlash | `http_port` | 删除 | 废弃 TiFlash HTTP 服务端口(默认 `8123`)。 | | TiCDC | [`sink.enable-partition-separator`](/ticdc/ticdc-changefeed-config.md#ticdc-changefeed-配置文件说明) | 修改 | 默认值从 `false` 修改为 `true`,代表默认会将表中各个分区的数据分不同的目录来存储。建议保持该配置项为 `true` 以避免同步分区表到存储服务时可能丢数据的问题。 | -### 其他 - -## 废弃功能 - ## 改进提升 -+ TiDB - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - -+ TiKV - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - -+ PD - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - + TiFlash - 提升 TiFlash 在存算分离架构下的性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** - 支持在 Semi Join 或 Anti Semi Join 中,通过选择较小的表作为 Build 端来优化查询性能 [#7280](https://github.com/pingcap/tiflash/issues/7280) @[yibin87](https://github.com/yibin87) -+ Tools - - + Backup & Restore (BR) - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiCDC - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiDB Data Migration (DM) - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiDB Lightning - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiUP - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - -## 错误修复 - -+ TiDB - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - -+ TiKV - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - -+ PD - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - -+ TiFlash - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - -+ Tools - - + Backup & Restore (BR) - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiCDC - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiDB Data Migration (DM) - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiDB Lightning - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - + TiUP - - - note [#issue](链接) @[贡献者 GitHub ID](链接) - - note [#issue](链接) @[贡献者 GitHub ID](链接) - ## 贡献者 感谢来自 TiDB 社区的贡献者们: From 3f0c777b38a684327464b717a6374b42c630c356 Mon Sep 17 00:00:00 2001 From: Ran Date: Wed, 26 Apr 2023 14:06:41 +0800 Subject: [PATCH 78/85] Update releases/release-7.1.0.md Co-authored-by: Aolin --- releases/release-7.1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 93e63f6c10e3..6481309eb89d 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -182,14 +182,14 @@ TiDB 版本:7.1.0 (upcoming) TiDB v7.1.0 之前的版本中,当 DDL 任务执行期间遇到业务高峰时间点时,为了减少对业务的影响,只能手动取消 DDL 任务。TiDB v7.1.0 引入了 DDL 任务的暂停和恢复功能,你可以在高峰时间点暂停 DDL 任务,等到业务高峰时间结束后再恢复 DDL 任务,从而避免了 DDL 操作对业务负载的影响。 - 例如,可以通过如下 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 或 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md) 语句暂停或者恢复多个 DDL 任务: + 例如,可以通过如下 `ADMIN PAUSE DDL JOBS` 或 `ADMIN RESUME DDL JOBS` 语句暂停或者恢复多个 DDL 任务: ```sql ADMIN PAUSE DDL JOBS 1,2; ADMIN RESUME DDL JOBS 1,2; ``` - 更多信息,请参考 [`ADMIN PAUSE DDL JOBS`](/sql-statements/sql-statement-admin-pause-ddl.md) 和 [`ADMIN RESUME DDL JOBS`](/sql-statements/sql-statement-admin-resume-ddl.md)。 + 更多信息,请参考[用户文档](/ddl-introduction.md#ddl-相关的命令介绍)。 ### 可观测性 From 515c4073f80cdb83ae5ec10a61733a6bdae904ea Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 26 Apr 2023 14:13:04 +0800 Subject: [PATCH 79/85] add tidb_plan_cache_invalidation_on_fresh_stats --- releases/release-7.1.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 6481309eb89d..3509e9007db2 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -237,6 +237,7 @@ TiDB 版本:7.1.0 (upcoming) | [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) | 新增 | 控制是否开启分布式执行框架。开启分布式执行后,DDL、Import 等支持的后端任务将会由集群中多个 TiDB 节点共同完成。该变量由 `tidb_ddl_distribute_reorg` 改名而来。| | [`tidb_enable_non_prepared_plan_cache_for_dml`](/system-variables.md#tidb_enable_non_prepared_plan_cache_for_dml-从-v710-版本开始引入) | 新增 | 控制非 Prepare 语句执行计划缓存是否支持 DML 语句。 | | [`tidb_opt_fix_control`](/system-variables.md#tidb_opt_fix_control-从-v710-版本开始引入) | 新增 | 通过设置该变量,你可以更细粒度地控制优化器的行为,并且避免集群升级后优化器行为变化导致的性能回退。 | +| [`tidb_plan_cache_invalidation_on_fresh_stats `](/system-variables.md#tidb_plan_cache_invalidation_on_fresh_stats-从-v710-版本开始引入) | 新增 | 控制当某张表上的统计信息更新后,与该表相关的 Plan Cache 是否自动失效。 | | [`tidb_plan_cache_max_plan_size`](/system-variables.md#tidb_plan_cache_max_plan_size-从-v710-版本开始引入) | 新增 | 控制可以缓存的 Prepare 或非 Prepare 语句执行计划的最大大小。 | | [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入) | 新增 | 控制是否使用最小网络数据交换策略。使用该策略时,TiDB 会估算 Broadcast Hash Join 和 Shuffled Hash Join 两种算法所需进行网络交换的数据量,并选择网络交换数据量较小的算法。该功能开启后,[`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_size-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 | | [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) | 新增 | 控制 Plan Cache 最多能够缓存的计划数量。其中,Prepare 语句执行计划缓存和非 Prepare 语句执行计划缓存共用一个缓存。 | From 2b38c3ae7c803a8fae9d484a818fe2e529d0904d Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 26 Apr 2023 19:45:51 +0800 Subject: [PATCH 80/85] remove tw id and fix format Signed-off-by: Aolin --- releases/release-7.1.0.md | 55 +++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 3509e9007db2..5d0e569c478e 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -38,8 +38,7 @@ TiDB 版本:7.1.0 (upcoming) 生成列 (GA) - 生成列 (Generated Columns) 的值是通过实时计算列定义中的 SQL 表达式得到的。该功能将一些应用逻辑推向数据库层,从而提升查询效率。 - + 生成列 (Generated Columns) 的值是通过实时计算列定义中的 SQL 表达式得到的。该功能将一些应用逻辑推向数据库层,从而提升查询效率。 @@ -48,7 +47,7 @@ TiDB 版本:7.1.0 (upcoming) ### 性能 -* TiFlash 查询支持延迟物化功能 (GA) [#5829](https://github.com/pingcap/tiflash/issues/5829) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) **tw:qiancai** +* TiFlash 查询支持延迟物化功能 (GA) [#5829](https://github.com/pingcap/tiflash/issues/5829) @[Lloyd-Pottiger](https://github.com/Lloyd-Pottiger) 在 v7.0.0 中,TiFlash 引入了延迟物化实验特性,用于优化查询性能。该特性默认关闭(系统变量 [`tidb_opt_enable_late_materialization`](/system-variables.md#tidb_opt_enable_late_materialization-从-v700-版本开始引入) 默认为 `OFF`)。当 `SELECT` 语句中包含过滤条件(`WHERE` 子句)时,TiFlash 默认会先读取该查询所需列的全部数据,然后再根据查询条件对数据进行过滤、聚合等计算任务。开启该特性后,TiFlash 支持下推部分过滤条件到 TableScan 算子,即先扫描过滤条件相关的列数据,过滤得到符合条件的行后,再扫描这些行的其他列数据,继续后续计算,从而减少 IO 扫描和数据处理的计算量。 @@ -56,7 +55,7 @@ TiDB 版本:7.1.0 (upcoming) 更多信息,请参考[用户文档](/tiflash/tiflash-late-materialization.md)。 -* TiFlash 支持根据网络交换数据量自动选择 MPP 模式的 Join 算法 [#7084](https://github.com/pingcap/tiflash/issues/7084) @[solotzg](https://github.com/solotzg) **tw:qiancai** +* TiFlash 支持根据网络交换数据量自动选择 MPP 模式的 Join 算法 [#7084](https://github.com/pingcap/tiflash/issues/7084) @[solotzg](https://github.com/solotzg) TiFlash MPP 模式有多种 Join 算法。在 v7.1.0 之前的版本中,TiDB 根据变量 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 以及实际数据量决定 TiFlash MPP 模式是否使用 Broadcast Hash Join 算法。 @@ -64,13 +63,13 @@ TiDB 版本:7.1.0 (upcoming) 更多信息,请参考[用户文档](/tiflash/use-tiflash-mpp-mode.md#mpp-模式的算法支持)。 -* 支持自适应副本读取缓解读热点 [#14151](https://github.com/tikv/tikv/issues/14151) @[sticnarf](https://github.com/sticnarf) @[you06](https://github.com/you06) **tw:Oreoxmt** +* 支持自适应副本读取缓解读热点 [#14151](https://github.com/tikv/tikv/issues/14151) @[sticnarf](https://github.com/sticnarf) @[you06](https://github.com/you06) 在读热点场景中,热点 TiKV 无法及时处理读请求,导致读请求排队。但是,此时并非所有 TiKV 资源都已耗尽。为了降低延迟,TiDB v7.1.0 引入了负载自适应副本读取功能,允许从其他有可用资源的 TiKV 节点读取副本,而无需在热点 TiKV 节点排队等待。你可以通过 [`tidb_load_based_replica_read_threshold`](/system-variables.md#tidb_load_based_replica_read_threshold-从-v700-版本开始引入) 系统变量控制读请求的排队长度。当 leader 节点的预估排队时间超过该阈值时,TiDB 会优先从 follower 节点读取数据。在读热点的情况下,与不打散读热点相比,该功能可提高读取吞吐量 70%~200%。 更多信息,请参考[用户文档](/troubleshoot-hot-spot-issues.md#打散读热点)。 -* 支持缓存非 Prepare 语句的执行计划 (GA) [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) **tw:Oreoxmt** +* 支持缓存非 Prepare 语句的执行计划 (GA) [#36598](https://github.com/pingcap/tidb/issues/36598) @[qw4990](https://github.com/qw4990) TiDB v7.0.0 引入了非 Prepare 语句的执行计划缓存作为实验特性,以提升在线交易场景的并发处理能力。该功能在 v7.1.0 正式 GA 并默认打开,支持缓存更多模式的 SQL。 @@ -82,7 +81,7 @@ TiDB 版本:7.1.0 (upcoming) ### 稳定性 -* 资源管控成为正式功能 (GA) [#38825](https://github.com/pingcap/tidb/issues/38825) @[nolouch](https://github.com/nolouch) @[BornChanger](https://github.com/BornChanger) @[glorv](https://github.com/glorv) @[tiancaiamao](https://github.com/tiancaiamao) @[Connor1996](https://github.com/Connor1996) @[JmPotato](https://github.com/JmPotato) @[hnes](https://github.com/hnes) @[CabinfeverB](https://github.com/CabinfeverB) @[HuSharp](https://github.com/HuSharp) **tw:hfxsd** +* 资源管控成为正式功能 (GA) [#38825](https://github.com/pingcap/tidb/issues/38825) @[nolouch](https://github.com/nolouch) @[BornChanger](https://github.com/BornChanger) @[glorv](https://github.com/glorv) @[tiancaiamao](https://github.com/tiancaiamao) @[Connor1996](https://github.com/Connor1996) @[JmPotato](https://github.com/JmPotato) @[hnes](https://github.com/hnes) @[CabinfeverB](https://github.com/CabinfeverB) @[HuSharp](https://github.com/HuSharp) TiDB 持续增强资源管控能力,在 v7.1.0 该功能正式 GA。该特性将极大地提升 TiDB 集群的资源利用率和性能表现。资源管控特性的引入对 TiDB 具有里程碑的意义,你可以将一个分布式数据库集群划分成多个逻辑单元,将不同的数据库用户映射到对应的资源组中,并根据实际需求设置每个资源组的配额。当集群资源紧张时,同一资源组内的会话所使用的全部资源将受到配额限制,防止某一资源组的过度消耗对其他资源组的会话造成影响。 @@ -92,13 +91,13 @@ TiDB 版本:7.1.0 (upcoming) 更多信息,请参考[用户文档](/tidb-resource-control.md)。 -* 支持 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,提升容错性和自动恢复能力 [#42164](https://github.com/pingcap/tidb/issues/42164) @[tangenta](https://github.com/tangenta) **tw:ran-huang** +* 支持 [Fast Online DDL](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入) 的检查点机制,提升容错性和自动恢复能力 [#42164](https://github.com/pingcap/tidb/issues/42164) @[tangenta](https://github.com/tangenta) TiDB v7.1.0 引入 [Fast Online DDL](/ddl-introduction.md) 的检查点机制,可以大幅提升 Fast Online DDL 的容错性和自动恢复能力。即使 TiDB owner 因故障重启或者切换,TiDB 也能够通过自动定期保存的检查点恢复部分进度,从而让 DDL 执行更加稳定高效。 更多信息,请参考[用户文档](/system-variables.md#tidb_ddl_enable_fast_reorg-从-v630-版本开始引入)。 -* BR 备份恢复工具支持断点恢复 [#42339](https://github.com/pingcap/tidb/issues/42339) @[Leavrth](https://github.com/Leavrth) **tw:Oreoxmt** +* BR 备份恢复工具支持断点恢复 [#42339](https://github.com/pingcap/tidb/issues/42339) @[Leavrth](https://github.com/Leavrth) 快照恢复或日志恢复会因为一些可恢复性错误导致提前结束,例如硬盘空间占满、节点宕机等突发情况。在 TiDB v7.1.0 之前,即使错误被及时处理,之前恢复的进度也会作废,你需要重新进行恢复。对大规模集群来说,会造成大量额外成本。 @@ -106,7 +105,7 @@ TiDB 版本:7.1.0 (upcoming) 更多信息,请参考[用户文档](/br/br-checkpoint-restore.md)。 -* 优化统计信息缓存加载策略 [#42160](https://github.com/pingcap/tidb/issues/42160) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) **tw:hfxsd** +* 优化统计信息缓存加载策略 [#42160](https://github.com/pingcap/tidb/issues/42160) @[xuyifangreeneyes](https://github.com/xuyifangreeneyes) 开启统计信息同步加载后,TiDB 可以大幅减少启动时必须载入的统计信息的数量,从而提升启动过程中统计信息的加载速度。该特性提升了 TiDB 在复杂运行环境下的稳定性,并降低了部分 TiDB 节点重启对整体服务的影响。 @@ -114,7 +113,7 @@ TiDB 版本:7.1.0 (upcoming) ### SQL 功能 -* 支持通过 `INSERT INTO SELECT` 语句保存 TiFlash 查询结果 (GA) [#37515](https://github.com/pingcap/tidb/issues/37515) @[gengliqi](https://github.com/gengliqi) **tw:qiancai** +* 支持通过 `INSERT INTO SELECT` 语句保存 TiFlash 查询结果 (GA) [#37515](https://github.com/pingcap/tidb/issues/37515) @[gengliqi](https://github.com/gengliqi) 从 v6.5.0 起,TiDB 支持下推 `INSERT INTO SELECT` 语句中的 `SELECT` 子句(分析查询)到 TiFlash,你可以将 TiFlash 的查询结果方便地保存到 `INSERT INTO` 指定的 TiDB 表中供后续分析使用,起到了结果缓存(即结果物化)的效果。 @@ -122,27 +121,27 @@ TiDB 版本:7.1.0 (upcoming) 更多信息,请参考[用户文档](/tiflash/tiflash-results-materialization.md)。 -* MySQL 兼容的多值索引 (Multi-Valued Index) 成为正式功能 (GA) [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei) @[qw4990](https://github.com/qw4990) @[YangKeao](https://github.com/YangKeao) **tw:ran-huang** +* MySQL 兼容的多值索引 (Multi-Valued Index) 成为正式功能 (GA) [#39592](https://github.com/pingcap/tidb/issues/39592) @[xiongjiwei](https://github.com/xiongjiwei) @[qw4990](https://github.com/qw4990) @[YangKeao](https://github.com/YangKeao) 过滤 JSON 列中某个数组的值是一种常见操作,但使用普通索引无法加速此过程。在数组上创建多值索引可以大幅提升过滤性能。如果 JSON 列中的某个数组上存在多值索引,则函数 `MEMBER OF()`、`JSON_CONTAINS()` 和 `JSON_OVERLAPS()` 的检索条件可以利用该多值索引进行过滤,从而减少大量的 I/O 消耗,提升执行速度。 在 v7.1.0 中,TiDB 多值索引成为正式功能 (GA),支持更完整的数据类型,并与 TiDB 的工具链兼容。你可以在生产环境利用多值索引来加速对 JSON 数组的检索操作。 - 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引) + 更多信息,请参考[用户文档](/sql-statements/sql-statement-create-index.md#多值索引)。 -* 完善 Hash 分区表和 Key 分区表的分区管理功能 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) **tw:qiancai** +* 完善 Hash 分区表和 Key 分区表的分区管理功能 [#42728](https://github.com/pingcap/tidb/issues/42728) @[mjonss](https://github.com/mjonss) 在 v7.1.0 之前,TiDB 中的 Hash 分区表和 Key 分区表只支持 `TRUNCATE PARTITION` 分区管理。从 v7.1.0 开始,Hash 分区表和 Key 分区表新增支持 `ADD PARTITION` 和 `COALESCE PARTITION` 分区管理。你可以根据需要灵活调整 Hash 分区表和 Key 分区表的分区数量。例如,通过 `ADD PARTITION` 语句增加分区数量,或通过 `COALESCE PARTITION` 语句减少分区数量。 更多信息,请参考[用户文档](/partitioned-table.md#)。 -* Range INTERVAL 分区定义语法成为正式功能 (GA) [#35683](https://github.com/pingcap/tidb/issues/35683) @[mjonss](https://github.com/mjonss) **tw:qiancai** +* Range INTERVAL 分区定义语法成为正式功能 (GA) [#35683](https://github.com/pingcap/tidb/issues/35683) @[mjonss](https://github.com/mjonss) - 在 v6.3.0 中引入的 Range INTERVAL 的分区定义语法成为正式功能 (GA)。通过该语法,你可以根据所需的间隔(interval)定义 Range 分区,不需要枚举所有分区,可大幅度缩短 Range 分区表的定义语句长度。语义与原有 Range 分区等价。 + 在 v6.3.0 中引入的 Range INTERVAL 的分区定义语法成为正式功能 (GA)。通过该语法,你可以根据所需的间隔 (interval) 定义 Range 分区,不需要枚举所有分区,可大幅度缩短 Range 分区表的定义语句长度。语义与原有 Range 分区等价。 更多信息,请参考[用户文档](/partitioned-table.md#range-interval-分区)。 -* `LOAD DATA` 部分功能 GA [#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** +* `LOAD DATA` 部分功能 GA [#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) 在 TiDB v7.1.0 中,以下 `LOAD DATA` 功能 GA: @@ -156,19 +155,19 @@ TiDB 版本:7.1.0 (upcoming) 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 -* `LOAD DATA` 集成 TiDB Lightning Physical Import Mode 的导入功能,提升导入性能(实验特性)[#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) **tw:hfxsd** +* `LOAD DATA` 集成 TiDB Lightning Physical Import Mode 的导入功能,提升导入性能(实验特性)[#42930](https://github.com/pingcap/tidb/issues/42930) @[D3Hunter](https://github.com/D3Hunter) `LOAD DATA` 集成 TiDB Lightning 的物理导入模式 (Physical Import Mode),你可以通过设置 `WITH import_mode = 'PHYSICAL'` 开启。相比逻辑导入模式 (Logical Import Mode),可成倍提升数据导入的性能。 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 -* `LOAD DATA` 支持并发导入,提升导入性能(实验特性)[#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) **tw:hfxsd** +* `LOAD DATA` 支持并发导入,提升导入性能(实验特性)[#40499](https://github.com/pingcap/tidb/issues/40499) @[lance6716](https://github.com/lance6716) 在 v7.1.0 之前版本中,`LOAD DATA` 不支持并发导入数据,导致性能未达到预期。从 v7.1.0 开始,`LOAD DATA` 支持并发导入数据,你可以通过 `WITH thread=` 提高并发度以提升导入的性能。在内部测试中,相较于 v7.0.0,测试负载下的逻辑导入性能提升了近 4 倍。 更多信息,请参考[用户文档](/sql-statements/sql-statement-load-data.md)。 -* 生成列 (Generated Columns) 成为正式功能 (GA) @[bb7133](https://github.com/bb7133) **tw:ran-huang** +* 生成列 (Generated Columns) 成为正式功能 (GA) @[bb7133](https://github.com/bb7133) 生成列是数据库中非常有价值的一个功能。在创建表时,可以定义一列的值由表中其他列的值计算而来,而不是由用户显式插入或更新。这个生成列可以是虚拟列 (Virtual Column) 或存储列 (Stored Column)。TiDB 在早期版本就提供了与 MySQL 兼容的生成列功能,在 v7.1.0 中这个功能正式 GA。 @@ -178,7 +177,7 @@ TiDB 版本:7.1.0 (upcoming) ### 数据库管理 -* DDL 任务支持暂停和恢复操作(实验特性)[#18015](https://github.com/pingcap/tidb/issues/18015) @[godouxm](https://github.com/godouxm) **tw:ran-huang** +* DDL 任务支持暂停和恢复操作(实验特性)[#18015](https://github.com/pingcap/tidb/issues/18015) @[godouxm](https://github.com/godouxm) TiDB v7.1.0 之前的版本中,当 DDL 任务执行期间遇到业务高峰时间点时,为了减少对业务的影响,只能手动取消 DDL 任务。TiDB v7.1.0 引入了 DDL 任务的暂停和恢复功能,你可以在高峰时间点暂停 DDL 任务,等到业务高峰时间结束后再恢复 DDL 任务,从而避免了 DDL 操作对业务负载的影响。 @@ -193,7 +192,7 @@ TiDB 版本:7.1.0 (upcoming) ### 可观测性 -* 增加优化器诊断信息 [#43122](https://github.com/pingcap/tidb/issues/43122) @[time-and-fate](https://github.com/time-and-fate) **tw:hfxsd** +* 增加优化器诊断信息 [#43122](https://github.com/pingcap/tidb/issues/43122) @[time-and-fate](https://github.com/time-and-fate) 获取充足的信息是 SQL 性能诊断的关键。在 v7.1.0 中,TiDB 持续为各种诊断工具增加优化器运行信息,以便更好地解释执行计划如何被选择,从而协助定位 SQL 性能问题。这些信息包括: @@ -205,7 +204,7 @@ TiDB 版本:7.1.0 (upcoming) ### 安全 -* 更换 TiFlash 系统表信息的查询接口 [#6941](https://github.com/pingcap/tiflash/issues/6941) @[flowbehappy](https://github.com/flowbehappy) **tw:qiancai** +* 更换 TiFlash 系统表信息的查询接口 [#6941](https://github.com/pingcap/tiflash/issues/6941) @[flowbehappy](https://github.com/flowbehappy) 从 v7.1.0 起,TiFlash 在向 TiDB 提供 [`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md) 系统表的查询服务时,不再使用 HTTP 端口,而是使用 gRPC 端口,从而避免 HTTP 服务的安全风险。 @@ -213,19 +212,19 @@ TiDB 版本:7.1.0 (upcoming) > **注意:** > -> 以下为从 v7.0.0 升级至当前版本 (v7.1.0) 所需兼容性变更信息。如果从 v6.6.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 release notes 中提到的兼容性变更信息。 +> 以下为从 v7.0.0 升级至当前版本 (v7.1.0) 所需兼容性变更信息。如果从 v6.6.0 或之前版本升级到当前版本,可能也需要考虑和查看中间版本 Release Notes 中提到的兼容性变更信息。 ### 行为变更 -* 为了提高安全性,TiFlash 废弃了 HTTP 服务端口(默认 `8123`),采用 gRPC 端口作为替代 **tw:qiancai** +* 为了提高安全性,TiFlash 废弃了 HTTP 服务端口(默认 `8123`),采用 gRPC 端口作为替代 如果你已经将 TiFlash 升级到 v7.1.0,那么在升级 TiDB 到 v7.1.0 的过程中,TiDB 无法读取 TiFlash 系统表([`INFORMATION_SCHEMA.TIFLASH_TABLES`](/information-schema/information-schema-tiflash-tables.md) 和 [`INFORMATION_SCHEMA.TIFLASH_SEGMENTS`](/information-schema/information-schema-tiflash-segments.md))。 -* [`SHOW LOAD DATA`](/sql-statements/sql-statement-show-load-data.md) 的返回值中废弃了参数 `Loaded_File_Size`,修改为参数 `Imported_Rows` **tw:hfxsd** +* [`SHOW LOAD DATA`](/sql-statements/sql-statement-show-load-data.md) 的返回值中废弃了参数 `Loaded_File_Size`,修改为参数 `Imported_Rows` ### 系统变量 -| 变量名 | 修改类型 | 描述 | +| 变量名 | 修改类型 | 描述 | |--------|------------------------------|------| | [`tidb_enable_tiflash_read_for_write_stmt`](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) | 废弃 | 从 v7.1.0 开始,该变量废弃并且默认值从 `OFF` 修改为 `ON`。当 [`tidb_allow_mpp = ON`](/system-variables.md#tidb_allow_mpp-从-v50-版本开始引入) 时,优化器将根据 [SQL 模式](/sql-mode.md)及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。 | | [`tidb_non_prepared_plan_cache_size`](/system-variables.md#tidb_non_prepared_plan_cache_size) | 废弃 | 从 v7.1.0 起,该变量被废弃,你可以使用 [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) 控制 Plan Cache 最多能够缓存的计划数量。 | @@ -255,7 +254,7 @@ TiDB 版本:7.1.0 (upcoming) + TiFlash - - 提升 TiFlash 在存算分离架构下的性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) **tw:qiancai** + - 提升 TiFlash 在存算分离架构下的性能和稳定性 [#6882](https://github.com/pingcap/tiflash/issues/6882) @[JaySon-Huang](https://github.com/JaySon-Huang) @[breezewish](https://github.com/breezewish) @[JinheLin](https://github.com/JinheLin) - 支持在 Semi Join 或 Anti Semi Join 中,通过选择较小的表作为 Build 端来优化查询性能 [#7280](https://github.com/pingcap/tiflash/issues/7280) @[yibin87](https://github.com/yibin87) ## 贡献者 From 77ce4b106ab7bc13afbba0e234b0ed1cbdc85451 Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 26 Apr 2023 19:56:38 +0800 Subject: [PATCH 81/85] make ci happy --- releases/release-7.1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 5d0e569c478e..a285cdaa38aa 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -133,7 +133,7 @@ TiDB 版本:7.1.0 (upcoming) 在 v7.1.0 之前,TiDB 中的 Hash 分区表和 Key 分区表只支持 `TRUNCATE PARTITION` 分区管理。从 v7.1.0 开始,Hash 分区表和 Key 分区表新增支持 `ADD PARTITION` 和 `COALESCE PARTITION` 分区管理。你可以根据需要灵活调整 Hash 分区表和 Key 分区表的分区数量。例如,通过 `ADD PARTITION` 语句增加分区数量,或通过 `COALESCE PARTITION` 语句减少分区数量。 - 更多信息,请参考[用户文档](/partitioned-table.md#)。 + 更多信息,请参考[用户文档](/partitioned-table.md)。 * Range INTERVAL 分区定义语法成为正式功能 (GA) [#35683](https://github.com/pingcap/tidb/issues/35683) @[mjonss](https://github.com/mjonss) @@ -236,7 +236,7 @@ TiDB 版本:7.1.0 (upcoming) | [`tidb_enable_dist_task`](/system-variables.md#tidb_enable_dist_task-从-v710-版本开始引入) | 新增 | 控制是否开启分布式执行框架。开启分布式执行后,DDL、Import 等支持的后端任务将会由集群中多个 TiDB 节点共同完成。该变量由 `tidb_ddl_distribute_reorg` 改名而来。| | [`tidb_enable_non_prepared_plan_cache_for_dml`](/system-variables.md#tidb_enable_non_prepared_plan_cache_for_dml-从-v710-版本开始引入) | 新增 | 控制非 Prepare 语句执行计划缓存是否支持 DML 语句。 | | [`tidb_opt_fix_control`](/system-variables.md#tidb_opt_fix_control-从-v710-版本开始引入) | 新增 | 通过设置该变量,你可以更细粒度地控制优化器的行为,并且避免集群升级后优化器行为变化导致的性能回退。 | -| [`tidb_plan_cache_invalidation_on_fresh_stats `](/system-variables.md#tidb_plan_cache_invalidation_on_fresh_stats-从-v710-版本开始引入) | 新增 | 控制当某张表上的统计信息更新后,与该表相关的 Plan Cache 是否自动失效。 | +| [`tidb_plan_cache_invalidation_on_fresh_stats`](/system-variables.md#tidb_plan_cache_invalidation_on_fresh_stats-从-v710-版本开始引入) | 新增 | 控制当某张表上的统计信息更新后,与该表相关的 Plan Cache 是否自动失效。 | | [`tidb_plan_cache_max_plan_size`](/system-variables.md#tidb_plan_cache_max_plan_size-从-v710-版本开始引入) | 新增 | 控制可以缓存的 Prepare 或非 Prepare 语句执行计划的最大大小。 | | [`tidb_prefer_broadcast_join_by_exchange_data_size`](/system-variables.md#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入) | 新增 | 控制是否使用最小网络数据交换策略。使用该策略时,TiDB 会估算 Broadcast Hash Join 和 Shuffled Hash Join 两种算法所需进行网络交换的数据量,并选择网络交换数据量较小的算法。该功能开启后,[`tidb_broadcast_join_threshold_size`](/system-variables.md#tidb_broadcast_join_threshold_size-从-v50-版本开始引入) 和 [`tidb_broadcast_join_threshold_count`](/system-variables.md#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 将不再生效。 | | [`tidb_session_plan_cache_size`](/system-variables.md#tidb_session_plan_cache_size-从-v710-版本开始引入) | 新增 | 控制 Plan Cache 最多能够缓存的计划数量。其中,Prepare 语句执行计划缓存和非 Prepare 语句执行计划缓存共用一个缓存。 | From 3267ab6e0e92f97f3b9bca7c552afe02ebd0fa59 Mon Sep 17 00:00:00 2001 From: Aolin Date: Wed, 26 Apr 2023 19:59:06 +0800 Subject: [PATCH 82/85] make ci happy --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index a285cdaa38aa..6f37f2a72518 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -133,7 +133,7 @@ TiDB 版本:7.1.0 (upcoming) 在 v7.1.0 之前,TiDB 中的 Hash 分区表和 Key 分区表只支持 `TRUNCATE PARTITION` 分区管理。从 v7.1.0 开始,Hash 分区表和 Key 分区表新增支持 `ADD PARTITION` 和 `COALESCE PARTITION` 分区管理。你可以根据需要灵活调整 Hash 分区表和 Key 分区表的分区数量。例如,通过 `ADD PARTITION` 语句增加分区数量,或通过 `COALESCE PARTITION` 语句减少分区数量。 - 更多信息,请参考[用户文档](/partitioned-table.md)。 + 更多信息,请参考[用户文档](/partitioned-table.md#管理-hash-分区和-key-分区)。 * Range INTERVAL 分区定义语法成为正式功能 (GA) [#35683](https://github.com/pingcap/tidb/issues/35683) @[mjonss](https://github.com/mjonss) From a4d30ec678266b3c78fb76f7dee4e01b93507419 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 27 Apr 2023 10:30:15 +0800 Subject: [PATCH 83/85] Apply suggestions from code review Co-authored-by: Grace Cai --- releases/release-7.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index 6f37f2a72518..e11542267a50 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -29,7 +29,7 @@ TiDB 版本:7.1.0 (upcoming) 基于负载的副本读取 - 在读热点场景中,TiDB 可以将热点 TiKV 节点的读请求转发到副本。该功能有效地打散了读热点并优化了集群资源的利用。你可以通过调整系统变量 tidb_load_based_replica_read_threshold 控制基于负载的副本读取的触发阈值。 + 在读热点场景中,TiDB 可以将热点 TiKV 节点的读请求转发到副本。该功能有效地打散了读热点并优化了集群资源的利用。你可以通过调整系统变量 tidb_load_based_replica_read_threshold 控制基于负载的副本读取的触发阈值。 SQL From 4e939757c97b5b82d1a04c90dc96b71e3b4a4e99 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 27 Apr 2023 11:30:39 +0800 Subject: [PATCH 84/85] Apply suggestions from code review --- releases/release-7.1.0.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index e11542267a50..c84449b1bd09 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -24,8 +24,8 @@ TiDB 版本:7.1.0 (upcoming) 可扩展性与性能 - 会话级别内无需手动准备 SQL 执行计划缓存 (GA) - 支持在会话级别自动重用执行计划缓存,可以减少编译并缩短相同 SQL 查询的时间,而无需事先手动准备 Prepare Statement 语句。 + 会话级别非 Prepare 语句执行计划缓存 (GA) + 支持在会话级别自动重用执行计划缓存,减少查询计划时间,缩短相同 SQL 查询的时间,而无需事先手动准备 Prepare Statement 语句。 基于负载的副本读取 @@ -40,6 +40,11 @@ TiDB 版本:7.1.0 (upcoming) 生成列 (GA) 生成列 (Generated Columns) 的值是通过实时计算列定义中的 SQL 表达式得到的。该功能将一些应用逻辑推向数据库层,从而提升查询效率。 + + 稳定性与高可用 + 资源管控 (GA) + 支持基于资源组的资源管控,将数据库用户映射到对应的资源组中,并根据实际需求设置每个资源组的配额。 + From 45e424eecfe273684c94a43032fc505d0d6722c9 Mon Sep 17 00:00:00 2001 From: Aolin Date: Thu, 27 Apr 2023 14:08:51 +0800 Subject: [PATCH 85/85] Apply suggestions from code review --- releases/release-7.1.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/releases/release-7.1.0.md b/releases/release-7.1.0.md index c84449b1bd09..0c7780944e5e 100644 --- a/releases/release-7.1.0.md +++ b/releases/release-7.1.0.md @@ -31,6 +31,11 @@ TiDB 版本:7.1.0 (upcoming) 基于负载的副本读取 在读热点场景中,TiDB 可以将热点 TiKV 节点的读请求转发到副本。该功能有效地打散了读热点并优化了集群资源的利用。你可以通过调整系统变量 tidb_load_based_replica_read_threshold 控制基于负载的副本读取的触发阈值。 + + 稳定性与高可用 + 资源管控 (GA) + 支持基于资源组的资源管控,将数据库用户映射到对应的资源组中,并根据实际需求设置每个资源组的配额。 + SQL 多值索引 (GA) @@ -40,11 +45,6 @@ TiDB 版本:7.1.0 (upcoming) 生成列 (GA) 生成列 (Generated Columns) 的值是通过实时计算列定义中的 SQL 表达式得到的。该功能将一些应用逻辑推向数据库层,从而提升查询效率。 - - 稳定性与高可用 - 资源管控 (GA) - 支持基于资源组的资源管控,将数据库用户映射到对应的资源组中,并根据实际需求设置每个资源组的配额。 - @@ -203,7 +203,7 @@ TiDB 版本:7.1.0 (upcoming) * 在 [`PLAN REPLAYER`](/sql-plan-replayer.md) 的输出中增加 `debug_trace.json` 文件。 * 在 [`EXPLAIN`](/explain-walkthrough.md) 的输出中为 `operator info` 添加部分统计信息详情。 - * 为[`慢日志`](/identify-slow-queries.md)的 `Stats` 字段添加部分统计信息详情。 + * 为[慢日志](/identify-slow-queries.md)的 `Stats` 字段添加部分统计信息详情。 更多信息,请参考[使用 `PLAN REPLAYER` 保存和恢复集群线程信息](/sql-plan-replayer.md)、[使用 `EXPLAIN` 解读执行计划](/explain-walkthrough.md)和[慢日志查询](/identify-slow-queries.md)。