### 27.12.15 性能模式状态变量表

MySQL 服务器维护许多状态变量，这些变量提供有关其操作的信息（请参阅[第 5.1.10 节，“服务器状态变量”](server-status-variables.html)）。这些性能模式表中提供了状态变量信息：

-   [`全局状态`](performance-schema-status-variable-tables.html)：全局状态变量。只需要全局值的应用程序应使用此表。

-   [`会话状态`](performance-schema-status-variable-tables.html)：当前会话的状态变量。想要其自己会话的所有状态变量值的应用程序应使用此表。它包括其会话的会话变量，以及没有会话对应的全局变量的值。

-   [`status_by_thread`](performance-schema-status-variable-tables.html)：每个活动会话的会话状态变量。想要了解特定会话的会话变量值的应用程序应使用此表。它仅包括会话变量，由线程 ID 标识。

    还有一些汇总表提供按帐户、主机名和用户名聚合的状态变量信息。看[第 27.12.20.12 节，“状态变量汇总表”](performance-schema-status-variable-summary-tables.html).

    会话变量表 ([`会话状态`](performance-schema-status-variable-tables.html),[`status_by_thread`](performance-schema-status-variable-tables.html)) 仅包含活动会话的信息，不包含终止会话的信息。

    Performance Schema 仅收集线程的全局状态变量的统计信息，`仪表`值为`是的`在里面[`线程`](performance-schema-threads-table.html)桌子。始终收集会话状态变量的统计信息，而不管`仪表`价值。

    性能模式不收集统计信息`Com_*`xxx`*`状态变量表中的状态变量。要获取全局和每个会话的语句执行计数，请使用[`events_statements_summary_global_by_event_name`](performance-schema-statement-summary-tables.html)和[`events_statements_summary_by_thread_by_event_name`](performance-schema-statement-summary-tables.html)表，分别。例如：


```
SELECT EVENT_NAME, COUNT_STAR
FROM performance_schema.events_statements_summary_global_by_event_name
WHERE EVENT_NAME LIKE 'statement/sql/%';
```

这[`全局状态`](performance-schema-status-variable-tables.html)和[`会话状态`](performance-schema-status-variable-tables.html)表有这些列：

-   `变量名`

    状态变量名称。

-   `VARIABLE_VALUE`

    状态变量值。为了[`全局状态`](performance-schema-status-variable-tables.html)，此列包含全局值。为了[`会话状态`](performance-schema-status-variable-tables.html)，此列包含当前会话的变量值。

    这[`全局状态`](performance-schema-status-variable-tables.html)和[`会话状态`](performance-schema-status-variable-tables.html)表有这些索引：

-   主键打开 (`变量名`)

    这[`status_by_thread`](performance-schema-status-variable-tables.html)表包含每个活动线程的状态。它有这些列：

-   `THREAD_ID`

    定义状态变量的会话的线程标识符。

-   `变量名`

    状态变量名称。

-   `VARIABLE_VALUE`

    由 命名的会话的会话变量值`THREAD_ID`柱子。

    这[`status_by_thread`](performance-schema-status-variable-tables.html)表有这些索引：

-   主键打开 (`THREAD_ID`,`变量名`)

    这[`status_by_thread`](performance-schema-status-variable-tables.html)表仅包含有关前台线程的状态变量信息。如果[`performance_schema_max_thread_instances`](performance-schema-system-variables.html#sysvar_performance_schema_max_thread_instances)系统变量未自动缩放（由值 -1 表示）并且允许的最大检测线程对象数不大于后台线程数，该表为空。

    性能模式支持[`截断表`](truncate-table.html)对于状态变量表如下：

-   [`全局状态`](performance-schema-status-variable-tables.html)：重置线程、帐户、主机和用户状态。重置全局状态变量，服务器从不重置的变量除外。

-   [`会话状态`](performance-schema-status-variable-tables.html)： 不支持。

-   [`status_by_thread`](performance-schema-status-variable-tables.html)：将所有线程的状态聚合到全局状态和帐户状态，然后重置线程状态。如果未收集帐户统计信息，则将会话状态添加到主机和用户状态，如果收集了主机和用户状态。

    如果以下情况不收集帐户、主机和用户统计信息[`performance_schema_accounts_size`](performance-schema-system-variables.html#sysvar_performance_schema_accounts_size),[`performance_schema_hosts_size`](performance-schema-system-variables.html#sysvar_performance_schema_hosts_size)， 和[`performance_schema_users_size`](performance-schema-system-variables.html#sysvar_performance_schema_users_size)系统变量分别设置为 0。

[`冲洗状态`](flush.html#flush-status)将所有活动会话的会话状态添加到全局状态变量，重置所有活动会话的状态，并重置从断开连接的会话聚合的帐户、主机和用户状态值。
