Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.0/reference, v2.1/reference, dev/reference: update stats related configuration #1526

Merged
merged 20 commits into from
Jul 23, 2019
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
4501f45
dev/reference: update stats related configuration
alivxxx Jun 27, 2019
053d417
Apply suggestions from code review
alivxxx Jul 5, 2019
d461b23
Merge branch 'master' of github.com:pingcap/docs-cn into stats
alivxxx Jul 5, 2019
322cf75
address comments
alivxxx Jul 5, 2019
7951710
Merge branch 'master' of https://github.com/pingcap/docs-cn into pr/1526
Jul 10, 2019
94520b6
fix a link issue
Jul 10, 2019
a3b05a6
Apply suggestions from code review
alivxxx Jul 11, 2019
26b7907
Merge branch 'master' of github.com:pingcap/docs-cn into stats
alivxxx Jul 11, 2019
869ac7d
fix lint
alivxxx Jul 11, 2019
7389297
Apply suggestions from code review
alivxxx Jul 12, 2019
fb8bc5d
Merge branch 'master' of https://github.com/pingcap/docs-cn into pr/1526
Jul 12, 2019
8d1549b
Merge branch 'master' of github.com:pingcap/docs-cn into stats
alivxxx Jul 12, 2019
b0d90c9
Merge branch 'stats' of github.com:lamxTyler/docs-cn into stats
alivxxx Jul 12, 2019
9cddf10
Apply suggestions from code review
alivxxx Jul 12, 2019
8a4e5d9
address comments
alivxxx Jul 23, 2019
8ac5807
Merge branch 'stats' of github.com:lamxTyler/docs-cn into stats
alivxxx Jul 23, 2019
8a24fd3
Merge branch 'master' of github.com:pingcap/docs-cn into stats
alivxxx Jul 23, 2019
43f424f
remove an extra line about markdownlint
Jul 23, 2019
707ab8b
Merge branch 'stats' of https://github.com/lamxTyler/docs-cn into pr/…
Jul 23, 2019
1ef9cf2
add markdownlint-disable MD001
Jul 23, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions dev/reference/configuration/tidb-server/configuration-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,12 +224,18 @@ 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 的时间间隔周期性的读取系统表中的统计信息并更新内存中缓存的统计信息。但不会自动修改统计信息相关系统表,具体来说,TiDB 不再自动修改这些表:
- `mysql.stats_meta`:TiDB 不再自动记录事务中对某张表的修改行数,也不会更新到这个系统表中
- `mysql.stats_histograms`/`mysql.stats_buckets` 和 `mysql.stats_top_n`:TiDB 不再自动 analyze 和主动更新统计信息
- `mysql.stats_feedback`:TiDB 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息

### `run-auto-analyze`

Expand All @@ -239,7 +245,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/
### `feedback-probability`

+ TiDB 对查询收集统计信息反馈的概率。
+ 默认值:0.0
+ 默认值:0.05
+ 对于每一个查询,TiDB 会以 `feedback-probability` 的概率收集查询的反馈,用于更新统计信息。

### `query-feedback-limit`
Expand Down
24 changes: 19 additions & 5 deletions v2.1/reference/configuration/tidb-server/configuration-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ category: reference

# TiDB 配置文件描述

<!-- markdownlint-disable MD001 -->

TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/config.toml.example](https://github.com/pingcap/tidb/blob/master/config/config.toml.example) 找到默认的配置文件,重命名为 config.toml 即可。

本文档只阐述未包含在命令行参数中的参数,命令行参数参见[这里](/reference/configuration/tidb-server/configuration.md)。
Expand Down Expand Up @@ -174,12 +172,28 @@ 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`

alivxxx marked this conversation as resolved.
Show resolved Hide resolved
> **注意:**
>
> 该配置项由 2.1.13 版本中引入,仅在 TiDB 版本大于等于 v2.1.13 的 2.1 版本中支持。

+ 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 不再根据被查询的数据反馈的部分统计信息更新表和索引的统计信息

### `run-auto-analyze`

Expand All @@ -189,7 +203,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/
### `feedback-probability`

+ TiDB 对查询收集统计信息反馈的概率。
+ 默认:0.0
+ 默认:0.05
+ 对于每一个查询,TiDB 会以 `feedback-probability` 的概率收集查询的反馈,用于更新统计信息。

## prepared-plan-cache
Expand Down
12 changes: 9 additions & 3 deletions v3.0/reference/configuration/tidb-server/configuration-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,12 +225,18 @@ 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 的时间间隔周期性的读取系统表中的统计信息并更新内存中缓存的统计信息。但不会自动修改统计信息相关系统表,具体来说,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`

Expand All @@ -240,7 +246,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/
### `feedback-probability`

+ TiDB 对查询收集统计信息反馈的概率。
+ 默认值:0.0
+ 默认值:0.05
+ 对于每一个查询,TiDB 会以 `feedback-probability` 的概率收集查询的反馈,用于更新统计信息。

### `query-feedback-limit`
Expand Down