### 27.12.8 性能模式连接表

[27.12.8.1 账户表](performance-schema-accounts-table.html)
[27.12.8.2 主机表](performance-schema-hosts-table.html)
[27.12.8.3 用户表](performance-schema-users-table.html)

当客户端连接到 MySQL 服务器时，它会使用特定的用户名和特定的主机进行连接。Performance Schema 提供有关这些连接的统计信息，使用这些表按帐户（用户和主机组合）以及按用户名和主机名分别跟踪它们：

-   [`帐户`](performance-schema-accounts-table.html)：每个客户帐户的连接统计信息

-   [`主机`](performance-schema-hosts-table.html)：每个客户端主机名的连接统计信息

-   [`用户`](performance-schema-users-table.html)：每个客户端用户名的连接统计信息

    连接表中“帐户”的含义类似于其在 MySQL 授权表中的含义。`mysql`系统数据库，从某种意义上说，该术语指的是用户值和主机值的组合。它们的不同之处在于，对于授权表，帐户的主机部分可以是模式，而对于性能模式表，主机值始终是特定的非模式主机名。

    每个连接表都有`CURRENT_CONNECTIONS`和`TOTAL_CONNECTIONS 个`列以跟踪其统计信息所基于的每个“跟踪值”的当前连接数和连接总数。这些表的不同之处在于它们用于跟踪值的内容。这[`帐户`](performance-schema-accounts-table.html)表有`用户`和`主持人`用于跟踪每个用户和主机组合的连接的列。这[`用户`](performance-schema-users-table.html)和[`主机`](performance-schema-hosts-table.html)表有一个`用户`和`主持人`列，分别跟踪每个用户名和主机名的连接。

    性能模式还计算内部线程和未通过身份验证的用户会话的线程，使用具有`用户`和`主持人`的列值`空值`.

    假设客户名为`用户1`和`用户2`每个连接一次`玉簪`和`主机b`.性能模式跟踪连接如下：

-   这[`帐户`](performance-schema-accounts-table.html)表有四行，对于`用户1`/`玉簪`, `用户1`/`主机b`, `用户2`/`玉簪`， 和`用户2`/`主机b`帐户值，每行计算每个帐户一个连接。

-   这[`主机`](performance-schema-hosts-table.html)表有两行，对于`玉簪`和`主机b`，每行计算每个主机名的两个连接。

-   这[`用户`](performance-schema-users-table.html)表有两行，对于`用户1`和`用户2`，每行计算每个用户名的两个连接。

    当客户端连接时，Performance Schema 使用适用于每个表的跟踪值来确定每个连接表中的哪一行适用。如果没有这样的行，则添加一个。然后 Performance Schema 以 1 递增`CURRENT_CONNECTIONS`和`TOTAL_CONNECTIONS 个`该行中的列。

    当客户端断开连接时，性能模式减一`CURRENT_CONNECTIONS`行中的列并离开`TOTAL_CONNECTIONS 个`列不变。

[`截断表`](truncate-table.html)允许用于连接表。它有以下效果：

-   为没有当前连接的帐户、主机或用户删除行（带有`CURRENT_CONNECTIONS = 0`）。

-   未删除的行被重置为仅计算当前连接数：对于具有`CURRENT_CONNECTIONS > 0`,`TOTAL_CONNECTIONS 个`被重置为`CURRENT_CONNECTIONS`.

-   依赖于连接表的汇总表被隐式截断，如本节后面所述。

    性能模式维护汇总表，按帐户、主机或用户汇总各种事件类型的连接统计信息。这些表有`_summary_by_account`,`_summary_by_host`， 要么`_summary_by_user`在名字里。要识别它们，请使用以下查询：


```
mysql> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
       WHERE TABLE_SCHEMA = 'performance_schema'
       AND TABLE_NAME REGEXP '_summary_by_(account|host|user)'
       ORDER BY TABLE_NAME;
+------------------------------------------------------+
| TABLE_NAME                                           |
+------------------------------------------------------+
| events_errors_summary_by_account_by_error            |
| events_errors_summary_by_host_by_error               |
| events_errors_summary_by_user_by_error               |
| events_stages_summary_by_account_by_event_name       |
| events_stages_summary_by_host_by_event_name          |
| events_stages_summary_by_user_by_event_name          |
| events_statements_summary_by_account_by_event_name   |
| events_statements_summary_by_host_by_event_name      |
| events_statements_summary_by_user_by_event_name      |
| events_transactions_summary_by_account_by_event_name |
| events_transactions_summary_by_host_by_event_name    |
| events_transactions_summary_by_user_by_event_name    |
| events_waits_summary_by_account_by_event_name        |
| events_waits_summary_by_host_by_event_name           |
| events_waits_summary_by_user_by_event_name           |
| memory_summary_by_account_by_event_name              |
| memory_summary_by_host_by_event_name                 |
| memory_summary_by_user_by_event_name                 |
+------------------------------------------------------+
```

有关各个连接汇总表的详细信息，请参阅描述汇总事件类型表的部分：

-   等待事件摘要：[第 27.12.20.1 节，“等待事件汇总表”](performance-schema-wait-summary-tables.html)

-   舞台活动总结：[第 27.12.20.2 节，“阶段汇总表”](performance-schema-stage-summary-tables.html)

-   声明事件摘要：[第 27.12.20.3 节，“报表汇总表”](performance-schema-statement-summary-tables.html)

-   交易事件摘要：[第 27.12.20.5 节，“事务汇总表”](performance-schema-transaction-summary-tables.html)

-   记忆事件总结：[第 27.12.20.10 节，“内存汇总表”](performance-schema-memory-summary-tables.html)

-   错误事件摘要：[第 27.12.20.11 节，“错误汇总表”](performance-schema-error-summary-tables.html)

[`截断表`](truncate-table.html)允许用于连接汇总表。它会删除没有连接的帐户、主机或用户的行，并将剩余行的摘要列重置为零。此外，每个按帐户、主机、用户或线程聚合的汇总表都会通过截断它所依赖的连接表来隐式截断。下表描述了连接表截断和隐式截断表之间的关系。

[](<>)

**表 27.2 连接表截断的隐式影响**

| 截断连接表 | 隐式截断汇总表 |
| ----- | ------- |
| `帐户` | 名称包含的表`_summary_by_account`,`_summary_by_thread` |
| `主机` | 名称包含的表`_summary_by_account`,`_summary_by_host`,`_summary_by_thread` |
| `用户` | 名称包含的表`_summary_by_account`,`_summary_by_user`,`_summary_by_thread` |

截断一个`_summary_global`汇总表还隐式截断其对应的连接和线程汇总表。例如，截断[`events_waits_summary_global_by_event_name`](performance-schema-wait-summary-tables.html)隐式截断按帐户、主机、用户或线程聚合的等待事件汇总表。
