From 4501f457502806f784de436875f746aa2aca5c50 Mon Sep 17 00:00:00 2001 From: Haibin Xie Date: Thu, 27 Jun 2019 14:44:45 +0800 Subject: [PATCH 01/11] dev/reference: update stats related configuration --- .../tidb-server/configuration-file.md | 11 +++++++---- .../tidb-server/configuration-file.md | 17 +++++++++++++---- .../tidb-server/configuration-file.md | 11 +++++++---- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/dev/reference/configuration/tidb-server/configuration-file.md b/dev/reference/configuration/tidb-server/configuration-file.md index 5746abea1f30..c794c2f1fab5 100644 --- a/dev/reference/configuration/tidb-server/configuration-file.md +++ b/dev/reference/configuration/tidb-server/configuration-file.md @@ -43,7 +43,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + TiDB 中 `KILL xxx` 的行为和 MySQL 中的行为不相同。为杀死一条查询,在 TiDB 里需要加上 `TIDB` 关键词,即 `KILL TIDB xxx`。但如果把 `compatible-kill-query` 设置为 true,则不需要加上 `TIDB` 关键词。 + 这种区别很重要,因为当用户按下 Ctrl+C 时,MySQL 命令行客户端的默认行为是:创建与后台的新连接,并在该新连接中执行 `KILL` 语句。如果负载均衡器或代理已将该新连接发送到与原始会话不同的 TiDB 服务器实例,则该错误会话可能被终止,从而导致使用 TiDB 集群的业务中断。只有当您确定在 `KILL` 语句中引用的连接正好位于 `KILL` 语句发送到的服务器上时,才可以启用 `compatible-kill-query`。 -## log +## log 日志相关的配置项。 @@ -172,12 +172,15 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `stats-lease` -+ TiDB 重载统计信息,更新表行数,检查是否需要自动 analyze 以及加载列的统计信息的时间间隔。 ++ TiDB 重载统计信息,更新表行数,检查是否需要自动 analyze,利用 feedback 更新统计信息以及加载列的统计信息的时间间隔。 + 默认:3s - 每隔 `stats-lease` 时间,TiDB 会检查统计信息是否有更新,如果有会将其更新到内存中 - - 每隔 `5 * stats-lease` 时间,TiDB 会将 DML 产生的总行数以及修改的行数变化持久化下来 + - 每隔 `20 * stats-lease` 时间,TiDB 会将 DML 产生的总行数以及修改的行数变化持久化下来 - 每隔 `stats-lease` 时间,TiDB 会检查是否有表或者索引需要自动 analyze - 每隔 `stats-lease` 时间,TiDB 会检查是否有列的统计信息需要被加载到内存中 + - 每隔 `200 * stats-lease` 时间,TiDB 会将内存中缓存的 feedback 写入系统表中 + - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新统计信息 ++ 当 `stats-lease` 为 0 时, TiDB 会以 3s 的时间间隔去读取最新的统计信息到内存中,但和统计信息更新相关的操作,例如维护总行数和修改行数,自动 analyze 以及 feedback 等操作都不会再进行。 ### `run-auto-analyze` @@ -187,7 +190,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `feedback-probability` + TiDB 对查询收集统计信息反馈的概率。 -+ 默认:0.0 ++ 默认:0.05 + 对于每一个查询,TiDB 会以 `feedback-probability` 的概率收集查询的反馈,用于更新统计信息。 ## prepared-plan-cache diff --git a/v2.1/reference/configuration/tidb-server/configuration-file.md b/v2.1/reference/configuration/tidb-server/configuration-file.md index 5746abea1f30..029eca6e4dbc 100644 --- a/v2.1/reference/configuration/tidb-server/configuration-file.md +++ b/v2.1/reference/configuration/tidb-server/configuration-file.md @@ -43,7 +43,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + TiDB 中 `KILL xxx` 的行为和 MySQL 中的行为不相同。为杀死一条查询,在 TiDB 里需要加上 `TIDB` 关键词,即 `KILL TIDB xxx`。但如果把 `compatible-kill-query` 设置为 true,则不需要加上 `TIDB` 关键词。 + 这种区别很重要,因为当用户按下 Ctrl+C 时,MySQL 命令行客户端的默认行为是:创建与后台的新连接,并在该新连接中执行 `KILL` 语句。如果负载均衡器或代理已将该新连接发送到与原始会话不同的 TiDB 服务器实例,则该错误会话可能被终止,从而导致使用 TiDB 集群的业务中断。只有当您确定在 `KILL` 语句中引用的连接正好位于 `KILL` 语句发送到的服务器上时,才可以启用 `compatible-kill-query`。 -## log +## log 日志相关的配置项。 @@ -172,12 +172,21 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `stats-lease` -+ TiDB 重载统计信息,更新表行数,检查是否需要自动 analyze 以及加载列的统计信息的时间间隔。 ++ TiDB 重载统计信息,更新表行数,检查是否需要自动 analyze,利用 feedback 更新统计信息以及加载列的统计信息的时间间隔。 + 默认:3s - 每隔 `stats-lease` 时间,TiDB 会检查统计信息是否有更新,如果有会将其更新到内存中 - - 每隔 `5 * stats-lease` 时间,TiDB 会将 DML 产生的总行数以及修改的行数变化持久化下来 + - 每隔 `20 * stats-lease` 时间,TiDB 会将 DML 产生的总行数以及修改的行数变化持久化下来 - 每隔 `stats-lease` 时间,TiDB 会检查是否有表或者索引需要自动 analyze - 每隔 `stats-lease` 时间,TiDB 会检查是否有列的统计信息需要被加载到内存中 + - 每隔 `200 * stats-lease` 时间,TiDB 会将内存中缓存的 feedback 写入系统表中 + - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新统计信息 ++ 当 `stats-lease` 为 0 时, 上述所有操作都不会再进行。 + +### `enable-update-stats` + ++ TiDB 是否做统计信息更新相关操作,例如维护总行数和修改行数,自动 analyze 以及 feedback 等。 ++ 默认: true ++ 由于统计信息更新操作的周期由 `stats-lease` 决定,因此该参数只在 `stats-lease` 不为 0 的情况下生效。 ### `run-auto-analyze` @@ -187,7 +196,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `feedback-probability` + TiDB 对查询收集统计信息反馈的概率。 -+ 默认:0.0 ++ 默认:0.05 + 对于每一个查询,TiDB 会以 `feedback-probability` 的概率收集查询的反馈,用于更新统计信息。 ## prepared-plan-cache diff --git a/v3.0/reference/configuration/tidb-server/configuration-file.md b/v3.0/reference/configuration/tidb-server/configuration-file.md index 3f3771711a32..146784f384de 100644 --- a/v3.0/reference/configuration/tidb-server/configuration-file.md +++ b/v3.0/reference/configuration/tidb-server/configuration-file.md @@ -44,7 +44,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + TiDB 中 `KILL xxx` 的行为和 MySQL 中的行为不相同。为杀死一条查询,在 TiDB 里需要加上 `TIDB` 关键词,即 `KILL TIDB xxx`。但如果把 `compatible-kill-query` 设置为 true,则不需要加上 `TIDB` 关键词。 + 这种区别很重要,因为当用户按下 Ctrl+C 时,MySQL 命令行客户端的默认行为是:创建与后台的新连接,并在该新连接中执行 `KILL` 语句。如果负载均衡器或代理已将该新连接发送到与原始会话不同的 TiDB 服务器实例,则该错误会话可能被终止,从而导致使用 TiDB 集群的业务中断。只有当您确定在 `KILL` 语句中引用的连接正好位于 `KILL` 语句发送到的服务器上时,才可以启用 `compatible-kill-query`。 -## log +## log 日志相关的配置项。 @@ -173,12 +173,15 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `stats-lease` -+ TiDB 重载统计信息,更新表行数,检查是否需要自动 analyze 以及加载列的统计信息的时间间隔。 ++ TiDB 重载统计信息,更新表行数,检查是否需要自动 analyze,利用 feedback 更新统计信息以及加载列的统计信息的时间间隔。 + 默认:3s - 每隔 `stats-lease` 时间,TiDB 会检查统计信息是否有更新,如果有会将其更新到内存中 - - 每隔 `5 * stats-lease` 时间,TiDB 会将 DML 产生的总行数以及修改的行数变化持久化下来 + - 每隔 `20 * stats-lease` 时间,TiDB 会将 DML 产生的总行数以及修改的行数变化持久化下来 - 每隔 `stats-lease` 时间,TiDB 会检查是否有表或者索引需要自动 analyze - 每隔 `stats-lease` 时间,TiDB 会检查是否有列的统计信息需要被加载到内存中 + - 每隔 `200 * stats-lease` 时间,TiDB 会将内存中缓存的 feedback 写入系统表中 + - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新统计信息 ++ 当 `stats-lease` 为 0 时, TiDB 会以 3s 的时间间隔去读取最新的统计信息到内存中,但和统计信息更新相关的操作,例如维护总行数和修改行数,自动 analyze 以及 feedback 等操作都不会再进行。 ### `run-auto-analyze` @@ -188,7 +191,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `feedback-probability` + TiDB 对查询收集统计信息反馈的概率。 -+ 默认:0.0 ++ 默认:0.05 + 对于每一个查询,TiDB 会以 `feedback-probability` 的概率收集查询的反馈,用于更新统计信息。 ## prepared-plan-cache From 053d417db41905580b153b41f9a9ebb37ff0bfd3 Mon Sep 17 00:00:00 2001 From: Haibin Xie Date: Fri, 5 Jul 2019 17:15:40 +0800 Subject: [PATCH 02/11] Apply suggestions from code review Co-Authored-By: Zhang Jian --- dev/reference/configuration/tidb-server/configuration-file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/reference/configuration/tidb-server/configuration-file.md b/dev/reference/configuration/tidb-server/configuration-file.md index c794c2f1fab5..f4344f8104d6 100644 --- a/dev/reference/configuration/tidb-server/configuration-file.md +++ b/dev/reference/configuration/tidb-server/configuration-file.md @@ -175,11 +175,11 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + TiDB 重载统计信息,更新表行数,检查是否需要自动 analyze,利用 feedback 更新统计信息以及加载列的统计信息的时间间隔。 + 默认:3s - 每隔 `stats-lease` 时间,TiDB 会检查统计信息是否有更新,如果有会将其更新到内存中 - - 每隔 `20 * stats-lease` 时间,TiDB 会将 DML 产生的总行数以及修改的行数变化持久化下来 + - 每隔 `20 * stats-lease` 时间,TiDB 会将 DML 产生的总行数以及修改的行数变化更新到系统表中 - 每隔 `stats-lease` 时间,TiDB 会检查是否有表或者索引需要自动 analyze - 每隔 `stats-lease` 时间,TiDB 会检查是否有列的统计信息需要被加载到内存中 - 每隔 `200 * stats-lease` 时间,TiDB 会将内存中缓存的 feedback 写入系统表中 - - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新统计信息 + - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新内存中缓存的统计信息 + 当 `stats-lease` 为 0 时, TiDB 会以 3s 的时间间隔去读取最新的统计信息到内存中,但和统计信息更新相关的操作,例如维护总行数和修改行数,自动 analyze 以及 feedback 等操作都不会再进行。 ### `run-auto-analyze` From 322cf75423bf3cff32b885414d9979671bca4bcb Mon Sep 17 00:00:00 2001 From: Haibin Xie Date: Fri, 5 Jul 2019 18:44:00 +0800 Subject: [PATCH 03/11] address comments --- .../tidb-server/configuration-file.md | 18 +++++---------- .../tidb-server/configuration-file.md | 7 +++++- .../tidb-server/configuration-file.md | 22 +++++++------------ 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/dev/reference/configuration/tidb-server/configuration-file.md b/dev/reference/configuration/tidb-server/configuration-file.md index 713c42eb64d5..8269f6d0ada9 100644 --- a/dev/reference/configuration/tidb-server/configuration-file.md +++ b/dev/reference/configuration/tidb-server/configuration-file.md @@ -193,7 +193,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `max-memory` -+ Prepare cache LRU 使用的最大内存限制,超过 performance.max-memory * (1 - prepared-plan-cache.memory-guard-ratio)会 剔除 LRU 中的元素。 ++ Prepare cache LRU 使用的最大内存限制,超过 performance.max-memory * (1 - prepared-plan-cache.memory-guard-ratio)会 剔除 LRU 中的元素。 + 默认值:0 + 这个配置只有在 prepared-plan-cache.enabled 为 true 的情况才会生效。在 LRU 的 size 大于 prepared-plan-cache.capacity 的情况下,也会剔除 LRU 中的元素。 @@ -221,20 +221,18 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `stats-lease` -<<<<<<< HEAD + TiDB 重载统计信息,更新表行数,检查是否需要自动 analyze,利用 feedback 更新统计信息以及加载列的统计信息的时间间隔。 -+ 默认:3s -======= -+ TiDB 重载统计信息,更新表行数,检查是否需要自动 analyze 以及加载列的统计信息的时间间隔。 + 默认值:3s ->>>>>>> 8587f4adb23f5c18f98cca008536cbee5c1e2109 - 每隔 `stats-lease` 时间,TiDB 会检查统计信息是否有更新,如果有会将其更新到内存中 - 每隔 `20 * stats-lease` 时间,TiDB 会将 DML 产生的总行数以及修改的行数变化更新到系统表中 - 每隔 `stats-lease` 时间,TiDB 会检查是否有表或者索引需要自动 analyze - 每隔 `stats-lease` 时间,TiDB 会检查是否有列的统计信息需要被加载到内存中 - 每隔 `200 * stats-lease` 时间,TiDB 会将内存中缓存的 feedback 写入系统表中 - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新内存中缓存的统计信息 -+ 当 `stats-lease` 为 0 时, TiDB 会以 3s 的时间间隔去读取最新的统计信息到内存中,但和统计信息更新相关的操作,例如维护总行数和修改行数,自动 analyze 以及 feedback 等操作都不会再进行。 ++ 当 `stats-lease` 为 0 时,TiDB 会以 3s 的时间间隔周期性的读取系统表中的统计信息更新内存中缓存的统计信息。但不会自动修改统计信息相关系统表,具体来说,TiDB 不再自动修改这些表: + - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 + - `mysql.stats_histograms`/`mysql.stats_buckets` 和 `mysql.stats_top_n`:TiDB 不再自动 Analyze,主动更新统计信息 + - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息 ### `run-auto-analyze` @@ -244,11 +242,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `feedback-probability` + TiDB 对查询收集统计信息反馈的概率。 -<<<<<<< HEAD -+ 默认:0.05 -======= -+ 默认值:0.0 ->>>>>>> 8587f4adb23f5c18f98cca008536cbee5c1e2109 ++ 默认值:0.05 + 对于每一个查询,TiDB 会以 `feedback-probability` 的概率收集查询的反馈,用于更新统计信息。 ### `query-feedback-limit` diff --git a/v2.1/reference/configuration/tidb-server/configuration-file.md b/v2.1/reference/configuration/tidb-server/configuration-file.md index 029eca6e4dbc..ef3898f50d53 100644 --- a/v2.1/reference/configuration/tidb-server/configuration-file.md +++ b/v2.1/reference/configuration/tidb-server/configuration-file.md @@ -184,9 +184,14 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `enable-update-stats` +> 注:该配置项由 2.1.13 版本中引入,仅在 TiDB 版本大于等于 v2.1.13 的 2.1 版本中支持。 + + TiDB 是否做统计信息更新相关操作,例如维护总行数和修改行数,自动 analyze 以及 feedback 等。 + 默认: true -+ 由于统计信息更新操作的周期由 `stats-lease` 决定,因此该参数只在 `stats-lease` 不为 0 的情况下生效。 ++ 由于统计信息更新操作的周期由 `stats-lease` 决定,因此该参数只在 `stats-lease` 不为 0 的情况下生效。当 enable-update-stats 为 false 时,TiDB 不再自动修改这些表: + - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 + - `mysql.stats_histograms` 和 `mysql.stats_buckets`:TiDB 不再自动 Analyze,主动更新统计信息 + - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息 ### `run-auto-analyze` diff --git a/v3.0/reference/configuration/tidb-server/configuration-file.md b/v3.0/reference/configuration/tidb-server/configuration-file.md index e0b3c6955d7b..aff30df13c53 100644 --- a/v3.0/reference/configuration/tidb-server/configuration-file.md +++ b/v3.0/reference/configuration/tidb-server/configuration-file.md @@ -194,7 +194,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `max-memory` -+ Prepare cache LRU 使用的最大内存限制,超过 performance.max-memory * (1 - prepared-plan-cache.memory-guard-ratio)会 剔除 LRU 中的元素。 ++ Prepare cache LRU 使用的最大内存限制,超过 performance.max-memory * (1 - prepared-plan-cache.memory-guard-ratio)会 剔除 LRU 中的元素。 + 默认值:0 + 这个配置只有在 prepared-plan-cache.enabled 为 true 的情况才会生效。在 LRU 的 size 大于 prepared-plan-cache.capacity 的情况下,也会剔除 LRU 中的元素。 @@ -222,20 +222,18 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `stats-lease` -<<<<<<< HEAD + TiDB 重载统计信息,更新表行数,检查是否需要自动 analyze,利用 feedback 更新统计信息以及加载列的统计信息的时间间隔。 -+ 默认:3s -======= -+ TiDB 重载统计信息,更新表行数,检查是否需要自动 analyze 以及加载列的统计信息的时间间隔。 + 默认值:3s ->>>>>>> 8587f4adb23f5c18f98cca008536cbee5c1e2109 - 每隔 `stats-lease` 时间,TiDB 会检查统计信息是否有更新,如果有会将其更新到内存中 - - 每隔 `20 * stats-lease` 时间,TiDB 会将 DML 产生的总行数以及修改的行数变化持久化下来 + - 每隔 `20 * stats-lease` 时间,TiDB 会将 DML 产生的总行数以及修改的行数变化更新到系统表中 - 每隔 `stats-lease` 时间,TiDB 会检查是否有表或者索引需要自动 analyze - 每隔 `stats-lease` 时间,TiDB 会检查是否有列的统计信息需要被加载到内存中 - 每隔 `200 * stats-lease` 时间,TiDB 会将内存中缓存的 feedback 写入系统表中 - - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新统计信息 -+ 当 `stats-lease` 为 0 时, TiDB 会以 3s 的时间间隔去读取最新的统计信息到内存中,但和统计信息更新相关的操作,例如维护总行数和修改行数,自动 analyze 以及 feedback 等操作都不会再进行。 + - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新内存中缓存的统计信息 ++ 当 `stats-lease` 为 0 时,TiDB 会以 3s 的时间间隔周期性的读取系统表中的统计信息更新内存中缓存的统计信息。但不会自动修改统计信息相关系统表,具体来说,TiDB 不再自动修改这些表: + - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 + - `mysql.stats_histograms`/`mysql.stats_buckets` 和 `mysql.stats_top_n`:TiDB 不再自动 Analyze,主动更新统计信息 + - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息analyze 以及 feedback 等操作都不会再进行。 ### `run-auto-analyze` @@ -245,11 +243,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `feedback-probability` + TiDB 对查询收集统计信息反馈的概率。 -<<<<<<< HEAD -+ 默认:0.05 -======= -+ 默认值:0.0 ->>>>>>> 8587f4adb23f5c18f98cca008536cbee5c1e2109 ++ 默认值:0.05 + 对于每一个查询,TiDB 会以 `feedback-probability` 的概率收集查询的反馈,用于更新统计信息。 ### `query-feedback-limit` From 94520b605c74b2cb7bdc12676a6f1539b13effc0 Mon Sep 17 00:00:00 2001 From: yikeke Date: Wed, 10 Jul 2019 13:27:11 +0800 Subject: [PATCH 04/11] fix a link issue --- v2.1/reference/configuration/tidb-server/configuration-file.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/v2.1/reference/configuration/tidb-server/configuration-file.md b/v2.1/reference/configuration/tidb-server/configuration-file.md index ef3898f50d53..ca0ea5f25b54 100644 --- a/v2.1/reference/configuration/tidb-server/configuration-file.md +++ b/v2.1/reference/configuration/tidb-server/configuration-file.md @@ -3,6 +3,8 @@ title: TiDB 配置文件描述 category: reference --- + + # TiDB 配置文件描述 TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/config.toml.example](https://github.com/pingcap/tidb/blob/master/config/config.toml.example) 找到默认的配置文件,重命名为 config.toml 即可。 From a3b05a6bf4c5e9b343a96bbb92ff55c8f2dbd1ee Mon Sep 17 00:00:00 2001 From: Haibin Xie Date: Thu, 11 Jul 2019 14:31:51 +0800 Subject: [PATCH 05/11] Apply suggestions from code review Co-Authored-By: Keke Yi <40977455+yikeke@users.noreply.github.com> --- .../configuration/tidb-server/configuration-file.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/v2.1/reference/configuration/tidb-server/configuration-file.md b/v2.1/reference/configuration/tidb-server/configuration-file.md index ca0ea5f25b54..9947f9046974 100644 --- a/v2.1/reference/configuration/tidb-server/configuration-file.md +++ b/v2.1/reference/configuration/tidb-server/configuration-file.md @@ -186,10 +186,12 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ ### `enable-update-stats` -> 注:该配置项由 2.1.13 版本中引入,仅在 TiDB 版本大于等于 v2.1.13 的 2.1 版本中支持。 +> **注意:** +> +> 该配置项由 2.1.13 版本中引入,仅在 TiDB 版本大于等于 v2.1.13 的 2.1 版本中支持。 + TiDB 是否做统计信息更新相关操作,例如维护总行数和修改行数,自动 analyze 以及 feedback 等。 -+ 默认: true ++ 默认:true + 由于统计信息更新操作的周期由 `stats-lease` 决定,因此该参数只在 `stats-lease` 不为 0 的情况下生效。当 enable-update-stats 为 false 时,TiDB 不再自动修改这些表: - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 - `mysql.stats_histograms` 和 `mysql.stats_buckets`:TiDB 不再自动 Analyze,主动更新统计信息 From 869ac7d085aec4318788d361908d3ee0ad9fd2d7 Mon Sep 17 00:00:00 2001 From: Haibin Xie Date: Thu, 11 Jul 2019 14:56:40 +0800 Subject: [PATCH 06/11] fix lint --- .../configuration/tidb-server/configuration-file.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v2.1/reference/configuration/tidb-server/configuration-file.md b/v2.1/reference/configuration/tidb-server/configuration-file.md index 9947f9046974..0fa88f28e931 100644 --- a/v2.1/reference/configuration/tidb-server/configuration-file.md +++ b/v2.1/reference/configuration/tidb-server/configuration-file.md @@ -193,9 +193,9 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + TiDB 是否做统计信息更新相关操作,例如维护总行数和修改行数,自动 analyze 以及 feedback 等。 + 默认:true + 由于统计信息更新操作的周期由 `stats-lease` 决定,因此该参数只在 `stats-lease` 不为 0 的情况下生效。当 enable-update-stats 为 false 时,TiDB 不再自动修改这些表: - - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 - - `mysql.stats_histograms` 和 `mysql.stats_buckets`:TiDB 不再自动 Analyze,主动更新统计信息 - - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息 + - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 + - `mysql.stats_histograms` 和 `mysql.stats_buckets`:TiDB 不再自动 Analyze,主动更新统计信息 + - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息 ### `run-auto-analyze` From 7389297dd83da13e695156a4ab259f2c556934cb Mon Sep 17 00:00:00 2001 From: Haibin Xie Date: Fri, 12 Jul 2019 13:57:08 +0800 Subject: [PATCH 07/11] Apply suggestions from code review Co-Authored-By: Keke Yi <40977455+yikeke@users.noreply.github.com> --- .../configuration/tidb-server/configuration-file.md | 4 ++-- .../configuration/tidb-server/configuration-file.md | 4 ++-- .../configuration/tidb-server/configuration-file.md | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dev/reference/configuration/tidb-server/configuration-file.md b/dev/reference/configuration/tidb-server/configuration-file.md index ee8058e82af7..ea37c4aebe3c 100644 --- a/dev/reference/configuration/tidb-server/configuration-file.md +++ b/dev/reference/configuration/tidb-server/configuration-file.md @@ -232,9 +232,9 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ - 每隔 `stats-lease` 时间,TiDB 会检查是否有列的统计信息需要被加载到内存中 - 每隔 `200 * stats-lease` 时间,TiDB 会将内存中缓存的 feedback 写入系统表中 - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新内存中缓存的统计信息 -+ 当 `stats-lease` 为 0 时,TiDB 会以 3s 的时间间隔周期性的读取系统表中的统计信息更新内存中缓存的统计信息。但不会自动修改统计信息相关系统表,具体来说,TiDB 不再自动修改这些表: ++ 当 `stats-lease` 为 0 时,TiDB 会以 3s 的时间间隔周期性的读取系统表中的统计信息并更新内存中缓存的统计信息。但不会自动修改统计信息相关系统表,具体来说,TiDB 不再自动修改这些表: - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 - - `mysql.stats_histograms`/`mysql.stats_buckets` 和 `mysql.stats_top_n`:TiDB 不再自动 Analyze,主动更新统计信息 + - `mysql.stats_histograms`/`mysql.stats_buckets` 和 `mysql.stats_top_n`:TiDB 不再自动 Analyze 和主动更新统计信息 - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息 ### `run-auto-analyze` diff --git a/v2.1/reference/configuration/tidb-server/configuration-file.md b/v2.1/reference/configuration/tidb-server/configuration-file.md index 0fa88f28e931..261f6585373f 100644 --- a/v2.1/reference/configuration/tidb-server/configuration-file.md +++ b/v2.1/reference/configuration/tidb-server/configuration-file.md @@ -192,9 +192,9 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + TiDB 是否做统计信息更新相关操作,例如维护总行数和修改行数,自动 analyze 以及 feedback 等。 + 默认:true -+ 由于统计信息更新操作的周期由 `stats-lease` 决定,因此该参数只在 `stats-lease` 不为 0 的情况下生效。当 enable-update-stats 为 false 时,TiDB 不再自动修改这些表: ++ 由于统计信息更新操作的周期由 `stats-lease` 决定,因此该参数只在 `stats-lease` 不为 0 的情况下生效。当 `enable-update-stats` 为 false 时,TiDB 不再自动修改这些表: - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 - - `mysql.stats_histograms` 和 `mysql.stats_buckets`:TiDB 不再自动 Analyze,主动更新统计信息 + - `mysql.stats_histograms` 和 `mysql.stats_buckets`:TiDB 不再自动 Analyze 和主动更新统计信息 - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息 ### `run-auto-analyze` diff --git a/v3.0/reference/configuration/tidb-server/configuration-file.md b/v3.0/reference/configuration/tidb-server/configuration-file.md index 1f1667914b90..49d76723bec7 100644 --- a/v3.0/reference/configuration/tidb-server/configuration-file.md +++ b/v3.0/reference/configuration/tidb-server/configuration-file.md @@ -233,10 +233,10 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ - 每隔 `stats-lease` 时间,TiDB 会检查是否有列的统计信息需要被加载到内存中 - 每隔 `200 * stats-lease` 时间,TiDB 会将内存中缓存的 feedback 写入系统表中 - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新内存中缓存的统计信息 -+ 当 `stats-lease` 为 0 时,TiDB 会以 3s 的时间间隔周期性的读取系统表中的统计信息更新内存中缓存的统计信息。但不会自动修改统计信息相关系统表,具体来说,TiDB 不再自动修改这些表: ++ 当 `stats-lease` 为 0 时,TiDB 会以 3s 的时间间隔周期性的读取系统表中的统计信息并更新内存中缓存的统计信息。但不会自动修改统计信息相关系统表,具体来说,TiDB 不再自动修改这些表: - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 - - `mysql.stats_histograms`/`mysql.stats_buckets` 和 `mysql.stats_top_n`:TiDB 不再自动 Analyze,主动更新统计信息 - - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息analyze 以及 feedback 等操作都不会再进行。 + - `mysql.stats_histograms`/`mysql.stats_buckets` 和 `mysql.stats_top_n`:TiDB 不再自动 Analyze 和主动更新统计信息 + - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息,analyze 以及 feedback 等操作都不会再进行。 ### `run-auto-analyze` From 9cddf1031b2d1a556b56504a614d0ac4fd64bab2 Mon Sep 17 00:00:00 2001 From: Haibin Xie Date: Fri, 12 Jul 2019 14:15:45 +0800 Subject: [PATCH 08/11] Apply suggestions from code review Co-Authored-By: Keke Yi <40977455+yikeke@users.noreply.github.com> --- dev/reference/configuration/tidb-server/configuration-file.md | 2 +- v2.1/reference/configuration/tidb-server/configuration-file.md | 2 +- v3.0/reference/configuration/tidb-server/configuration-file.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dev/reference/configuration/tidb-server/configuration-file.md b/dev/reference/configuration/tidb-server/configuration-file.md index ea37c4aebe3c..9640f58e1b95 100644 --- a/dev/reference/configuration/tidb-server/configuration-file.md +++ b/dev/reference/configuration/tidb-server/configuration-file.md @@ -234,7 +234,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新内存中缓存的统计信息 + 当 `stats-lease` 为 0 时,TiDB 会以 3s 的时间间隔周期性的读取系统表中的统计信息并更新内存中缓存的统计信息。但不会自动修改统计信息相关系统表,具体来说,TiDB 不再自动修改这些表: - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 - - `mysql.stats_histograms`/`mysql.stats_buckets` 和 `mysql.stats_top_n`:TiDB 不再自动 Analyze 和主动更新统计信息 + - `mysql.stats_histograms`/`mysql.stats_buckets` 和 `mysql.stats_top_n`:TiDB 不再自动 analyze 和主动更新统计信息 - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息 ### `run-auto-analyze` diff --git a/v2.1/reference/configuration/tidb-server/configuration-file.md b/v2.1/reference/configuration/tidb-server/configuration-file.md index 002b6a5903ff..eb05c4395005 100644 --- a/v2.1/reference/configuration/tidb-server/configuration-file.md +++ b/v2.1/reference/configuration/tidb-server/configuration-file.md @@ -196,7 +196,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + 默认:true + 由于统计信息更新操作的周期由 `stats-lease` 决定,因此该参数只在 `stats-lease` 不为 0 的情况下生效。当 `enable-update-stats` 为 false 时,TiDB 不再自动修改这些表: - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 - - `mysql.stats_histograms` 和 `mysql.stats_buckets`:TiDB 不再自动 Analyze 和主动更新统计信息 + - `mysql.stats_histograms` 和 `mysql.stats_buckets`:TiDB 不再自动 analyze 和主动更新统计信息 - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息 ### `run-auto-analyze` diff --git a/v3.0/reference/configuration/tidb-server/configuration-file.md b/v3.0/reference/configuration/tidb-server/configuration-file.md index 49d76723bec7..4abd2e4ce493 100644 --- a/v3.0/reference/configuration/tidb-server/configuration-file.md +++ b/v3.0/reference/configuration/tidb-server/configuration-file.md @@ -235,7 +235,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ - 每隔 `5 * stats-lease` 时间,TiDB 会读取系统表中的 feedback,更新内存中缓存的统计信息 + 当 `stats-lease` 为 0 时,TiDB 会以 3s 的时间间隔周期性的读取系统表中的统计信息并更新内存中缓存的统计信息。但不会自动修改统计信息相关系统表,具体来说,TiDB 不再自动修改这些表: - `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中 - - `mysql.stats_histograms`/`mysql.stats_buckets` 和 `mysql.stats_top_n`:TiDB 不再自动 Analyze 和主动更新统计信息 + - `mysql.stats_histograms`/`mysql.stats_buckets` 和 `mysql.stats_top_n`:TiDB 不再自动 analyze 和主动更新统计信息 - `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息,analyze 以及 feedback 等操作都不会再进行。 ### `run-auto-analyze` From 8a4e5d9413867e681a4b57dc0626996cf9203d83 Mon Sep 17 00:00:00 2001 From: Haibin Xie Date: Tue, 23 Jul 2019 12:50:35 +0800 Subject: [PATCH 09/11] address comments --- v2.1/reference/configuration/tidb-server/configuration-file.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/v2.1/reference/configuration/tidb-server/configuration-file.md b/v2.1/reference/configuration/tidb-server/configuration-file.md index 002b6a5903ff..8b2681f5a0eb 100644 --- a/v2.1/reference/configuration/tidb-server/configuration-file.md +++ b/v2.1/reference/configuration/tidb-server/configuration-file.md @@ -3,8 +3,6 @@ title: TiDB 配置文件描述 category: reference --- - - # TiDB 配置文件描述 From 43f424f9fb1e522d4668d084d536d5a3ba429d8b Mon Sep 17 00:00:00 2001 From: yikeke Date: Tue, 23 Jul 2019 12:55:32 +0800 Subject: [PATCH 10/11] remove an extra line about markdownlint --- v2.1/reference/configuration/tidb-server/configuration-file.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/v2.1/reference/configuration/tidb-server/configuration-file.md b/v2.1/reference/configuration/tidb-server/configuration-file.md index eb05c4395005..abbccaeca09d 100644 --- a/v2.1/reference/configuration/tidb-server/configuration-file.md +++ b/v2.1/reference/configuration/tidb-server/configuration-file.md @@ -7,8 +7,6 @@ category: reference # TiDB 配置文件描述 - - TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/config.toml.example](https://github.com/pingcap/tidb/blob/master/config/config.toml.example) 找到默认的配置文件,重命名为 config.toml 即可。 本文档只阐述未包含在命令行参数中的参数,命令行参数参见[这里](/reference/configuration/tidb-server/configuration.md)。 From 1ef9cf2e732990c01fb588cf878d4ed280b9f4b4 Mon Sep 17 00:00:00 2001 From: yikeke Date: Tue, 23 Jul 2019 12:59:42 +0800 Subject: [PATCH 11/11] add markdownlint-disable MD001 --- v2.1/reference/configuration/tidb-server/configuration-file.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/v2.1/reference/configuration/tidb-server/configuration-file.md b/v2.1/reference/configuration/tidb-server/configuration-file.md index ca705523a690..abbccaeca09d 100644 --- a/v2.1/reference/configuration/tidb-server/configuration-file.md +++ b/v2.1/reference/configuration/tidb-server/configuration-file.md @@ -3,6 +3,8 @@ title: TiDB 配置文件描述 category: reference --- + + # TiDB 配置文件描述 TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/config.toml.example](https://github.com/pingcap/tidb/blob/master/config/config.toml.example) 找到默认的配置文件,重命名为 config.toml 即可。