Skip to content

Commit

Permalink
*: add doc for system variable tidb_schema_version_cache_limit (#15145)
Browse files Browse the repository at this point in the history
  • Loading branch information
crazycs520 authored Oct 8, 2023
1 parent dbed07d commit b52b231
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -4092,6 +4092,17 @@ EXPLAIN FORMAT='brief' SELECT COUNT(1) FROM t WHERE a = 1 AND b IS NOT NULL;
- TiDB 默认会在建表时为新表分裂 Region。开启该变量后,会在建表语句执行时,同步打散刚分裂出的 Region。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。
- 如果建表时设置了 `SHARD_ROW_ID_BITS``PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。

### `tidb_schema_version_cache_limit` <span class="version-mark">从 v7.4.0 版本开始引入</span>

- 作用域:GLOBAL
- 是否持久化到集群:是
- 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否
- 默认值:`16`
- 取值范围:`[2, 255]`
- 该变量用于限制 TiDB 实例可以缓存多少个历史版本的表结构信息。默认值为 `16`,即默认缓存 16 个历史版本的表结构信息。
- 一般不需要修改该变量。当使用 [Stale Read](/stale-read.md) 功能且 DDL 执行非常频繁时,会导致表结构信息的版本号变更非常频繁,进而导致 Stale Read 在获取 Snapshot 的表结构信息时,可能会因为未命中表结构信息的缓存而需要消耗大量时间重新构建该信息。此时可以适当调大 `tidb_schema_version_cache_limit` 的值(例如 `32` )来避免表结构信息的缓存不命中的问题。
- 修改该变量会使 TiDB 的内存占用轻微上升。使用时请注意 TiDB 的内存占用,避免出现 OOM 问题。

### `tidb_server_memory_limit` <span class="version-mark">从 v6.4.0 版本开始引入</span>

- 作用域:GLOBAL
Expand Down

0 comments on commit b52b231

Please sign in to comment.