性能模式提供了状态变量信息,位于第 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
从所有活动会话中添加会话状态到全局状态变量,重置所有活动会话的状态,并重置从断开连接的会话聚合的账户、主机和用户状态值。