Spec-Zone.ru › MySQL 5.7

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

  • 25.12.8.1 Таблица accounts
  • 25.12.8.2 Таблица hosts
  • 25.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_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                 |
+------------------------------------------------------+

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

  • Сводки событий ожидания: Раздел 25.12.15.1, “Сводки событий ожидания”

  • Сводки событий этапа: Раздел 25.12.15.2, “Сводки событий этапа”

  • Сводки событий операторов: Раздел 25.12.15.3, “Сводки событий операторов”

  • Сводки событий транзакций: Раздел 25.12.15.4, “Сводки событий транзакций”

  • Сводки событий памяти: Раздел 25.12.15.9, “Сводки событий памяти”

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

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

Таблица 25.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-5.7-en/performance-schema-connection-tables.html

Spec-Zone.ru

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