Spec-Zone.ru › MySQL 9.2

29.12.8 Таблицы подключений Performance Schema

  • 29.12.8.1 Таблица accounts
  • 29.12.8.2 Таблица hosts
  • 29.12.8.3 Таблица users

При подключении клиента к серверу MySQL, он подключается под определенным именем пользователя и с определенного хоста. Performance Schema предоставляет статистику о таких подключениях, отслеживая их по каждой учетной записи (комбинация пользователя и хоста), а также отдельно по имени пользователя и имени хоста, используя эти таблицы:

  • accounts: Статистика подключений по каждой учетной записи клиента

  • hosts: Статистика подключений по имени хоста клиента

  • users: Статистика подключений по имени пользователя клиента

Значение «учетной записи» в таблицах подключений аналогично ее значению в таблицах предоставления прав MySQL в базе данных системы mysql, в том смысле, что этот термин относится к комбинации значений пользователя и хоста. Они отличаются тем, что для таблиц предоставления прав часть хоста в учетной записи может быть шаблоном, тогда как для таблиц Performance Schema значение хоста всегда является конкретным именем хоста без шаблонов.

Каждая таблица подключений имеет столбцы CURRENT_CONNECTIONS и TOTAL_CONNECTIONS для отслеживания текущего и общего количества подключений по «значению отслеживания», на котором основана статистика. Таблицы различаются тем, что они используют для значения отслеживания. Таблица accounts имеет столбцы USER и HOST для отслеживания подключений по комбинации пользователя и хоста. Таблицы users и hosts имеют столбцы USER и HOST соответственно для отслеживания подключений по имени пользователя и имени хоста.

Performance Schema также подсчитывает внутренние потоки и потоки для пользовательских сессий, которые не смогли пройти аутентификацию, используя строки со значениями столбцов USER и HOST равными NULL.

Предположим, что клиенты с именами user1 и user2 подключаются по одному разу с hosta и hostb. Performance Schema отслеживает подключения следующим образом:

  • Таблица accounts имеет четыре строки для значений учетной записи user1/hosta, user1/hostb, user2/hosta и user2/hostb, каждая строка считает одно подключение на учетную запись.

  • Таблица hosts имеет две строки для hosta и hostb, каждая строка считает два подключения по имени хоста.

  • Таблица users имеет две строки для user1 и user2, каждая строка считает два подключения по имени пользователя.

Когда клиент подключается, Performance Schema определяет, какая строка в каждой таблице подключений применима, используя значение отслеживания, соответствующее каждой таблице. Если такой строки нет, она добавляется. Затем Performance Schema увеличивает на единицу столбцы CURRENT_CONNECTIONS и TOTAL_CONNECTIONS в этой строке.

Когда клиент отключается, Performance Schema уменьшает на единицу столбец CURRENT_CONNECTIONS в строке и оставляет столбец TOTAL_CONNECTIONS без изменений.

Разрешено использовать TRUNCATE TABLE для таблиц подключений. Это имеет следующие последствия:

  • Удаляются строки для учетных записей, хостов или пользователей, у которых нет текущих подключений (строки со значением CURRENT_CONNECTIONS = 0).

  • Неудаленные строки сбрасываются, чтобы учитывать только текущие подключения: для строк со значением CURRENT_CONNECTIONS > 0, TOTAL_CONNECTIONS сбрасывается до значения CURRENT_CONNECTIONS.

  • Сводные таблицы, зависящие от таблицы подключений, неявно усекаются, как описано позже в этом разделе.

Performance Schema поддерживает сводные таблицы, которые агрегируют статистику подключений для различных типов событий по учетной записи, хосту или пользователю. В названиях этих таблиц есть _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                 |
+------------------------------------------------------+

Для получения подробностей об отдельных сводных таблицах подключений обратитесь к разделу, описывающему таблицы для обобщенного типа события:

  • Сводки событий ожидания: Раздел 29.12.20.1, «Сводные таблицы событий ожидания»

  • Сводки событий стадии: Раздел 29.12.20.2, «Сводные таблицы стадий»

  • Сводки событий оператора: Раздел 29.12.20.3, «Сводные таблицы операторов»

  • Сводки событий транзакций: Раздел 29.12.20.5, «Сводные таблицы транзакций»

  • Сводки событий памяти: Раздел 29.12.20.10, «Сводные таблицы памяти»

  • Сводки событий ошибок: Раздел 29.12.20.11, «Сводные таблицы ошибок»

Разрешено использовать TRUNCATE TABLE для сводных таблиц подключений. Она удаляет строки для учетных записей, хостов или пользователей без подключений и сбрасывает сводные столбцы в ноль для оставшихся строк. Кроме того, каждая сводная таблица, которая агрегируется по учетной записи, хосту, пользователю или потоку, неявно усекается путем усечения таблицы подключений, от которой она зависит. В следующей таблице описываются отношения между усечением таблицы подключений и неявно усекаемыми таблицами.

Таблица 29.2 Неявные последствия усечения таблицы подключений

Таблица 29.2 Неявные последствия усечения таблицы подключений
Усеченная таблица подключений Неявно усеченные сводные таблицы
accounts Таблицы с именами, содержащими _summary_by_account, _summary_by_thread
hosts Таблицы с именами, содержащими _summary_by_account, _summary_by_host, _summary_by_thread
users Таблицы с именами, содержащими _summary_by_account, _summary_by_user, _summary_by_thread

Усечение сводной таблицы _summary_global также неявно усекает соответствующие сводные таблицы подключений и потоков. Например, усечение events_waits_summary_global_by_event_name неявно усекает сводные таблицы событий ожидания, агрегированные по учетной записи, хосту, пользователю или потоку.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/performance-schema-connection-tables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API