Documentation Home

27.12.14.2 性能模式 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

      该变量是从全局选项文件设置的。EXPLICIT这包括、EXTRALOGINPERSISTEDSERVER或未涵盖的选项文件 USER

    • LOGIN

      该变量是从用户特定的登录路径文件 ( ~/.mylogin.cnf) 设置的。

    • PERSISTED

      该变量是从特定于服务器的 mysqld-auto.cnf选项文件中设置的。如果服务器以 persisted_globals_load 禁用状态启动,则没有行具有此值。

    • SERVER

      该变量是从特定于服务器的 $MYSQL_HOME/my.cnf 选项文件中设置的。有关如何 MYSQL_HOME设置的详细信息,请参阅 第 4.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.comSET_USERSET_HOSTuser17host34.example.com

variables_info表没有索引。

TRUNCATE TABLE不允许用于variables_info表。

如果在运行时设置 了一个VARIABLE_SOURCE值不是的变量, 则变为 空字符串。 DYNAMICVARIABLE_SOURCEDYNAMICVARIABLE_PATH

只有会话值(例如 debug_sync)的系统变量不能在启动时设置或持久化。对于仅限会话的系统变量, VARIABLE_SOURCE可以是 only COMPILEDDYNAMIC.

如果系统变量具有意外 VARIABLE_SOURCE值,请考虑您的服务器启动方法。例如,mysqld_safe 读取选项文件并传递它在其中找到的某些选项作为它用于启动 mysqld的命令行的一部分。因此,您在选项文件中设置的某些系统变量可能会显示为 variables_infoas COMMAND_LINE,而不是 您可能期望的 asGLOBAL或as 。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         |
    +--------------------------+----------------+-----------+-----------+