29.12.8 Таблицы соединений Performance Schema
При подключении клиента к серверу MySQL, он подключается под определенным именем пользователя и с определенного хоста. Performance Schema предоставляет статистику о таких подключениях, отслеживая их по каждой учётной записи (сочетание пользователя и хоста), а также отдельно по имени пользователя и имени хоста, используя эти таблицы:
Значение “учётной записи” в таблицах подключений аналогично его значению в таблицах разрешений 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 Неявные эффекты усечения таблиц подключений
| Усечённая таблица подключений | Неявно усечённые сводные таблицы |
|---|---|
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.