25.12.14 性能架构状态变量 table
Note
show_compatibility_56系统变量的值会影响此处描述的 table 中可用的信息。有关详细信息,请参见第 5.1.7 节“服务器系统变量”中对该变量的描述。
MySQL 服务器维护许多状态变量,这些状态变量提供有关其操作的信息(请参见第 5.1.9 节“服务器状态变量”)。这些性能模式 table 中提供了状态变量信息:
-
global_status:全局状态变量。仅需要全局值的应用程序应使用此 table。
-
session_status:当前会话的状态变量。想要为其会话使用所有状态变量值的应用程序应使用此 table。它包括其会话的会话变量,以及没有会话对应项的全局变量的值。
-
status_by_thread:每个活动会话的会话状态变量。想要了解特定会话的会话变量值的应用程序应使用此 table。它仅包含会话变量,由线程 ID 标识。
也有摘要 table,这些 table 提供了按帐户,主机名和用户名聚合的状态变量信息。参见第 25.12.15.10 节,“状态变量汇总 table”。
会话变量 table(session_status,status_by_thread)仅包含活动会话的信息,而不包含终止的会话的信息。
性能架构仅收集threadstable 中INSTRUMENTED
值为YES
的线程的全局状态变量的统计信息。无论INSTRUMENTED
值如何,始终收集会话状态变量的统计信息。
性能架构不会在状态变量 table 中收集Com_xxx
状态变量的统计信息。若要获取全局和每个会话语句的执行计数,请分别使用events_statements_summary_global_by_event_name和events_statements_summary_by_thread_by_event_nametable。例如:
SELECT EVENT_NAME, COUNT_STAR
FROM performance_schema.events_statements_summary_global_by_event_name
WHERE EVENT_NAME LIKE 'statement/sql/%';
global_status和session_statustable 具有以下列:
VARIABLE_NAME
状态变量名称。
VARIABLE_VALUE
状态变量值。对于global_status,此列包含全局值。对于session_status,此列包含当前会话的变量值。
status_by_threadtable 包含每个活动线程的状态。它具有以下列:
THREAD_ID
定义状态变量的会话的线程标识符。
VARIABLE_NAME
状态变量名称。
VARIABLE_VALUE
THREAD_ID
列命名的会话的会话变量值。
status_by_threadtable 仅包含有关前台线程的状态变量信息。如果performance_schema_max_thread_instances系统变量未自动缩放(由值-1table 示),并且允许的已检测线程对象的最大数量不大于后台线程的数量,则该 table 将为空。
性能模式为状态变量 table 支持TRUNCATE TABLE,如下所示:
-
global_status:重置线程,帐户,主机和用户状态。重置全局状态变量,但服务器永不重置的变量除外。
-
session_status:不支持。
-
status_by_thread:将所有线程的状态汇总为全局状态和帐户状态,然后重置线程状态。如果未收集帐户统计信息,则如果收集了主机和用户状态,则将会话状态添加到主机和用户状态。
如果分别将performance_schema_accounts_size,performance_schema_hosts_size和performance_schema_users_size系统变量设置为 0,则不会收集帐户,主机和用户统计信息。
FLUSH STATUS将所有活动会话的会话状态添加到全局状态变量,重置所有活动会话的状态,并重置断开连接的会话汇总的帐户,主机和用户状态值。