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
)仅包含活动会话的信息,不包含已终止会话的信息。
global_variables
和 session_variables
表包含以下列:
VARIABLE_NAME
系统变量名称。
VARIABLE_VALUE
系统变量值。对于
global_variables
,此列包含全局值。对于session_variables
,此列包含当前会话生效的变量值。
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
表仅包含有关前台线程的系统变量信息。 如果并非所有线程都由性能模式检测,则此表会缺少某些行。 在这种情况下,Performance_schema_thread_instances_lost
状态变量的值将大于零。
性能模式系统变量表不支持 TRUNCATE TABLE
。