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_statusstatus_by_thread)仅包含活动会话的信息,而不包含终止的会话的信息。

性能架构仅收集threadstable 中INSTRUMENTED值为YES的线程的全局状态变量的统计信息。无论INSTRUMENTED值如何,始终收集会话状态变量的统计信息。

性能架构不会在状态变量 table 中收集Com_xxx状态变量的统计信息。若要获取全局和每个会话语句的执行计数,请分别使用events_statements_summary_global_by_event_nameevents_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_statussession_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_sizeperformance_schema_hosts_sizeperformance_schema_users_size系统变量设置为 0,则不会收集帐户,主机和用户统计信息。

FLUSH STATUS将所有活动会话的会话状态添加到全局状态变量,重置所有活动会话的状态,并重置断开连接的会话汇总的帐户,主机和用户状态值。