MySQL 服务器维护了许多系统变量,以指示其配置(见 第 7.1.8 节,“服务器系统变量”)。系统变量信息可在这些性能模式表中找到:
-
global_variables
:全局系统变量。应用程序如果只需要全局值,应该使用该表。 -
session_variables
:当前会话的系统变量。应用程序如果需要所有系统变量值的当前会话,应该使用该表。它包括当前会话的会话变量,以及没有会话对应的全局变量的值。 -
variables_by_thread
:每个活动会话的会话系统变量。应用程序如果需要知道特定会话的会话变量值,应该使用该表。它仅包括会话变量,按线程 ID 标识。 -
persisted_variables
:提供了对mysqld-auto.cnf
文件的 SQL 接口,该文件存储了持久的全局系统变量设置。见 第 29.12.14.1 节,“性能模式 persisted_variables 表”。 -
variables_info
:显示每个系统变量的最近设置来源及其值范围。见 第 29.12.14.2 节,“性能模式 variables_info 表”。
需要 SENSITIVE_VARIABLES_OBSERVER
权限来查看这些表中的敏感系统变量值。
会话变量表 (session_variables
, variables_by_thread
) 只包含活动会话的信息,不包含已终止的会话。
The global_variables
和 session_variables
表具有以下列:
-
VARIABLE_NAME
系统变量名称。
-
VARIABLE_VALUE
系统变量值。对于
global_variables
, 该列包含全局值。对于session_variables
, 该列包含当前会话中的变量值。
The global_variables
和 session_variables
表具有以下索引:
-
主键在 (
VARIABLE_NAME
)
该 variables_by_thread
表具有以下列:
-
THREAD_ID
会话的线程标识符,其中定义了系统变量。
-
VARIABLE_NAME
系统变量名称。
-
VARIABLE_VALUE
会话变量值,用于由
THREAD_ID
列命名的会话。
该 variables_by_thread
表具有以下索引:
-
主键在 (
THREAD_ID
,VARIABLE_NAME
)
该 variables_by_thread
表仅包含前台线程的系统变量信息。如果不是所有线程都由性能模式instrumented,则该表将缺少一些行。在这种情况下,Performance_schema_thread_instances_lost
状态变量大于零。
TRUNCATE TABLE
不支持性能模式系统变量表。