MySQL服务器维护着许多状态变量,这些变量提供了有关其操作的信息服务器状态变量).状态变量信息可在以下性能模式表中获得:
global_status
:全局状态变量。只需要全局值的应用程序应该使用此表。session_status
:当前会话的状态变量。如果应用程序需要自己会话的所有状态变量值,那么应该使用这个表。它包括其会话的会话变量,以及没有会话对应变量的全局变量的值。status_by_thread
:每个活动会话的会话状态变量。想要知道特定会话的会话变量值的应用程序应该使用该表。它只包括会话变量,由线程ID标识。
还有一些汇总表提供按帐户、主机名和用户名聚合的状态变量信息。看到第10.20.12节,“状态变量汇总表”.
会话变量表(session_status
,status_by_thread
)只包含活动会话的信息,而不包含终止会话的信息。
性能模式只收集线程的全局状态变量的统计信息检测
值是是的
在线程
表格总是收集会话状态变量的统计信息,而不管检测
价值。
性能架构不收集的统计信息Com_
状态变量表中的状态变量。要获取全局和每个会话的语句执行计数,请使用xxx
events_statements_summary_global_by_event_name
而且events_statements_summary_by_thread_by_event_name
表,分别。例如:
从performance_schema中选择EVENT_NAME, COUNT_STAR。events_statements_summary_global_by_event_nameWHERE EVENT_NAME LIKE 'statement/sql/%';
的global_status
而且session_status
表有以下列:
VARIABLE_NAME
状态变量名。
VARIABLE_VALUE
状态变量值。为
global_status
,该列包含全局值。为session_status
,该列包含当前会话的变量值。
的global_status
而且session_status
表有以下索引:
主键为(
VARIABLE_NAME
)
的status_by_thread
表包含每个活动线程的状态。它有以下几列:
THREAD_ID
定义状态变量的会话的线程标识符。
VARIABLE_NAME
状态变量名。
VARIABLE_VALUE
控件命名的会话的会话变量值
THREAD_ID
列。
的status_by_thread
表有以下索引:
主键为(
THREAD_ID
,VARIABLE_NAME
)
的status_by_thread
表只包含前台线程的状态变量信息。如果performance_schema_max_thread_instances
系统变量没有自动缩放(值为−1),并且允许的检测线程对象的最大数量不大于后台线程的数量,表为空。
性能模式支持截断表
状态变量表如下:
global_status
:重置线程、帐户、主机和用户状态。重置全局状态变量(服务器从不重置的除外)。session_status
:不支持。status_by_thread
:将所有线程的状态聚合为全局状态和帐户状态,然后重置线程状态。如果不统计账号,则将会话状态添加到主机和用户状态中,如果统计主机和用户状态,则将会话状态添加到主机和用户状态中。不统计帐号、主机和用户
performance_schema_accounts_size
,performance_schema_hosts_size
,performance_schema_users_size
系统变量分别设为0。
冲洗状态
将所有活动会话的会话状态添加到全局状态变量,重置所有活动会话的状态,重置断开会话聚合的帐户、主机和用户状态值。