性能模式在 第 29.12.15 节,“性能模式状态变量表” 中描述的表中提供了状态变量信息。它还在此处描述的汇总表中提供了聚合的状态变量信息。每个状态变量汇总表都有一个或多个分组列,以指示表如何聚合状态值
status_by_account
有USER
、HOST
和VARIABLE_NAME
列,用于按帐户汇总状态变量。status_by_host
有HOST
和VARIABLE_NAME
列,用于按客户端连接的主机汇总状态变量。status_by_user
有USER
和VARIABLE_NAME
列,用于按客户端用户名汇总状态变量。
每个状态变量汇总表都有此汇总列,其中包含聚合值
VARIABLE_VALUE
活动和已终止会话的聚合状态变量值。
状态变量汇总表有以下索引
-
主键位于 (
USER
,HOST
,VARIABLE_NAME
) 上
-
主键位于 (
HOST
,VARIABLE_NAME
) 上
-
主键位于 (
USER
,VARIABLE_NAME
) 上
这些表中 “帐户” 的含义类似于其在 mysql
系统数据库中的 MySQL 授权表中的含义,因为该术语指的是用户和主机值的组合。它们的区别在于,对于授权表,帐户的主机部分可以是模式,而对于性能模式表,主机值始终是特定非模式主机名。
帐户状态在会话终止时收集。会话状态计数器会添加到全局状态计数器和相应的帐户状态计数器中。如果未收集帐户统计信息,则会将会话状态添加到主机和用户状态(如果收集了主机和用户状态)。
如果分别将 performance_schema_accounts_size
、performance_schema_hosts_size
和 performance_schema_users_size
系统变量设置为 0,则不会收集帐户、主机和用户统计信息。
性能模式支持 TRUNCATE TABLE
用于状态变量汇总表,如下所示;在所有情况下,活动会话的状态都不会受到影响
status_by_account
: 将已终止会话的帐户状态聚合到用户和主机状态,然后重置帐户状态。status_by_host
: 重置已终止会话的聚合主机状态。status_by_user
: 重置已终止会话的聚合用户状态。
FLUSH STATUS
将所有活动会话的会话状态添加到全局状态变量中,重置所有活动会话的状态,并重置从断开连接的会话聚合的帐户、主机和用户状态值。