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

system-variables: add configuration tip based on units (#7390) #7840

Merged
Merged
Changes from all commits
Commits
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: 12 additions & 0 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,18 @@ SET GLOBAL tidb_distsql_scan_concurrency = 10;
> - 在 TiDB 服务器上执行 `SET GLOBAL` 语句后,该更改会立即生效。之后会通知所有 TiDB 服务器刷新其系统变量缓存,该操作会在后台立即开始。由于某些 TiDB 服务器可能会错过通知,系统变量缓存每 30 秒会自动刷新一次。这有助于确保所有服务器都以相同的配置运行。
> - 在 TiDB 中,`GLOBAL` 变量的设置即使重启后也仍然有效。此外,由于应用和连接器通常需要读 MySQL 变量,为了兼容这一需求,在 TiDB 中,部分 MySQL 的变量既可读取也可设置。例如,尽管 JDBC 连接器不依赖于查询缓存 (query cache) 的行为,但仍然可以读取和设置查询缓存。

> **注意:**
>
> 变量取较大值并不总会带来更好的性能。由于大部分变量对单个连接生效,设置变量时,还应考虑正在执行语句的并发连接数量。
>
> 确定安全值时,应考虑变量的单位:
>
> * 如果单位为线程,安全值通常取决于 CPU 核的数量。
> * 如果单位为字节,安全值通常小于系统内存的总量。
> * 如果单位为时间,单位可能为秒或毫秒。
>
> 单位相同的多个变量可能会争夺同一组资源。

## 变量参考

### `allow_auto_random_explicit_insert` <span class="version-mark">从 v4.0.3 版本开始引入</span>
Expand Down