29.12.14.2 Performance Schema variables_info 表
variables_info 表显示每个系统变量的来源,以及其值的范围。
variables_info 表具有以下列:
-
VARIABLE_NAME
变量名称。
-
VARIABLE_SOURCE
变量最近设置的来源:
-
COMMAND_LINE
变量在命令行上设置。
-
COMPILED
变量使用编译时的默认值。
COMPILED
是未设置其他方式的变量的默认值。 -
DYNAMIC
变量在运行时设置。这包括使用
init_file
系统变量指定的文件。 -
EXPLICIT
变量从选项文件中设置,文件名使用
--defaults-file
选项指定。 -
EXTRA
变量从选项文件中设置,文件名使用
--defaults-extra-file
选项指定。 -
GLOBAL
变量从全局选项文件中设置。这包括不受
persisted_globals_load
禁用的服务器选项文件。 -
LOGIN
变量从用户登录路径文件(
~/.mylogin.cnf
)中设置。 -
PERSISTED
变量从服务器特定的mysqld-auto.cnf选项文件中设置。没有行具有这个值,如果服务器使用
persisted_globals_load
禁用。 -
SERVER
变量从服务器特定的
$MYSQL_HOME
/my.cnf选项文件中设置。关于MYSQL_HOME的设置,请参阅第6.2.2.2节,“使用选项文件”。 -
USER
变量从用户特定的~/.my.cnf选项文件中设置。
-
-
VARIABLE_PATH
如果变量从选项文件中设置,
VARIABLE_PATH
是该文件的路径名。否则,该值为空字符串。 -
MIN_VALUE
,MAX_VALUE
最小和最大允许的变量值。对于没有这种值的变量(即非数字变量),这两个值都是0。
-
SET_TIME
变量最后被设置的时间。默认情况下,这是服务器在启动时初始化全局系统变量的时间。
-
SET_USER
,SET_HOST
变量最后被设置的客户端用户名和主机名。如果客户端以
user17
身份从主机host34.example.com
连接,使用账户'user17'@'%.example.com
,那么SET_USER
和SET_HOST
分别是user17
和host34.example.com
。对于代理用户连接,这些值对应于外部(代理)用户,而不是被代理用户,对于权限检查。默认情况下,每个列的值都是空字符串,表示变量自服务器启动以来没有被设置。
性能 Schema variables_info
表没有索引。
TRUNCATE TABLE
对variables_info
表不可用。
如果在运行时将变量的VARIABLE_SOURCE
值设置为除DYNAMIC
以外的值,VARIABLE_SOURCE
将变为DYNAMIC
,VARIABLE_PATH
将变为空字符串。
只有会话值的系统变量(例如debug_sync
)不能在启动时设置或持久化。对于会话-only 系统变量,VARIABLE_SOURCE
只能是COMPILED
或DYNAMIC
。
如果系统变量的VARIABLE_SOURCE
值不正常,考虑服务器启动方法。例如mysqld_safe 读取选项文件,并将其中找到的选项作为命令行参数传递给mysqld。因此,某些系统变量在variables_info
中可能显示为COMMAND_LINE
,而不是GLOBAL
或SERVER
,这可能与您期望的不同。
一些使用variables_info
表的示例查询,带有代表性输出:
-
显示命令行设置的变量:
mysql> SELECT VARIABLE_NAME FROM performance_schema.variables_info WHERE VARIABLE_SOURCE = 'COMMAND_LINE' ORDER BY VARIABLE_NAME; +---------------+ | VARIABLE_NAME | +---------------+ | basedir | | datadir | | log_error | | pid_file | | plugin_dir | | port | +---------------+
-
显示从持久存储设置的变量:
mysql> SELECT VARIABLE_NAME FROM performance_schema.variables_info WHERE VARIABLE_SOURCE = 'PERSISTED' ORDER BY VARIABLE_NAME; +--------------------------+ | VARIABLE_NAME | +--------------------------+ | event_scheduler | | max_connections | | validate_password.policy | +--------------------------+
-
将
variables_info
与global_variables
表连接,以显示持久变量的当前值,以及它们的取值范围:mysql> SELECT VI.VARIABLE_NAME, GV.VARIABLE_VALUE, VI.MIN_VALUE,VI.MAX_VALUE FROM performance_schema.variables_info AS VI INNER JOIN performance_schema.global_variables AS GV USING(VARIABLE_NAME) WHERE VI.VARIABLE_SOURCE = 'PERSISTED' ORDER BY VARIABLE_NAME; +--------------------------+----------------+-----------+-----------+ | VARIABLE_NAME | VARIABLE_VALUE | MIN_VALUE | MAX_VALUE | +--------------------------+----------------+-----------+-----------+ | event_scheduler | ON | 0 | 0 | | max_connections | 200 | 1 | 100000 | | validate_password.policy | STRONG | 0 | 0 | +--------------------------+----------------+-----------+-----------+