Spec-Zone.ru › MySQL 8.4

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-8.4-en/performance-schema-connection-tables.html

Spec-Zone.ru

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