TiDB的配置
系统配置和集群配置
一张图表说明问题。
系统配置 | 集群配置 | |
文本储存位置 | 一部分储存在TiKV中 | 全部参数储存在TiDBServer、TiKVServer、PD的配置文件中 |
文本内容 | 专指TiDBServer的参数 | 包含TiDBServer、TiKVServer、PD所有配置文件的参数 |
配置生效 | 一部分不需要修改即可持久化 | 重启节点方可生效 |
作用域 | 有 | 无 |
修改方式 | 使用MySQL客户端进行修改 | 不能通过客户端,必须用TiUP edit-config与tiup reload进行修改 |
系统配置作用域
变量的作用范围可以是会话级别有效 (Session Scope) 或全局范围有效 (Global Scope)。其中:
- 对 SESSION 作用域变量的更改,设置后只影响当前会话。
- 对GLOBAL 作用域变量的更改,设置后立即生效。如果该变量也有 SESSION 作用域,已经连接的所有会话 (包括当前会话) 将继续使用会话当前的 SESSION 变量值,即修改前的参数。
举个例子就是:
1.当前系统配置中有food=apple。
1.1.在会话1中,进行 session food=orange的更改,则此时对于会话1,session food=orange,global food=apple,session级别会覆盖global级别。对于会话2,session food=apple,global food=apple
1.2.在会话1中,进行global food=orange的更改,则此时对于会话1,session food=apple,global food=orange,session级别会覆盖global级别,这就是“已经连接的所有会话将使用会话当前的SESSION变量”的含义。此时新开会话2,session food=orange,global food=orange。