Статистика пользователей
Функция статистики пользователей была впервые выпущена в MariaDB 5.2.0 и переместилась в плагин userstat в MariaDB 10.1.1.
Плагин userstat создаёт таблицы USER_STATISTICS, CLIENT_STATISTICS, INDEX_STATISTICS и TABLE_STATISTICS в базе данных INFORMATION_SCHEMA. В качестве альтернативы этим таблицам, плагин также добавляет команды SHOW USER_STATISTICS, SHOW CLIENT_STATISTICS, SHOW INDEX_STATISTICS и SHOW TABLE_STATISTICS.
Эти таблицы и команды могут быть использованы для лучшего понимания активности сервера и выявления источников нагрузки на вашу базу данных.
Плагин также добавляет команды FLUSH USER_STATISTICS, FLUSH CLIENT_STATISTICS, FLUSH INDEX_STATISTICS и FLUSH TABLE_STATISTICS.
Реализация плагина в MariaDB основана на патче userstatv2 от Percona и Ourdelta. Исходный код происходит от Google (команда Марка Каллагана) с дополнительной работой от Percona, Ourdelta и Weldon Whipple. Реализация в MariaDB обеспечивает ту же функциональность, что и патч userstatv2, но в неё внесены значительные изменения для повышения скорости и лучшего соответствия инфраструктуре MariaDB.
Как это работает
Плагин userstat работает путём хранения нескольких хэш-таблиц в памяти. Все переменные инкрементируются во время выполнения запроса. В конце каждой команды глобальные значения обновляются.
Включение плагина
По умолчанию сбор статистики не производится. Это гарантирует, что сбор статистики не вызывает дополнительной нагрузки на сервер, если это не нужно.
Установите системную переменную userstat=ON в соответствующей группе опций сервера в файле опций группы опций в файле опций. Например:
[mariadb] ... userstat = 1
Значение также может быть изменено динамически. Например:
SET GLOBAL userstat=1;
Использование плагина
Использование таблицы Information Schema
Плагин userstat создаёт таблицы USER_STATISTICS, CLIENT_STATISTICS, INDEX_STATISTICS и TABLE_STATISTICS в базе данных INFORMATION_SCHEMA.
SELECT * FROM INFORMATION_SCHEMA.USER_STATISTICS\G
*************************** 1. row ***************************
USER: root
TOTAL_CONNECTIONS: 1
CONCURRENT_CONNECTIONS: 0
CONNECTED_TIME: 297
BUSY_TIME: 0.001725
CPU_TIME: 0.001982
BYTES_RECEIVED: 388
BYTES_SENT: 2327
BINLOG_BYTES_WRITTEN: 0
ROWS_READ: 0
ROWS_SENT: 12
ROWS_DELETED: 0
ROWS_INSERTED: 13
ROWS_UPDATED: 0
SELECT_COMMANDS: 4
UPDATE_COMMANDS: 0
OTHER_COMMANDS: 3
COMMIT_TRANSACTIONS: 0
ROLLBACK_TRANSACTIONS: 0
DENIED_CONNECTIONS: 0
LOST_CONNECTIONS: 0
ACCESS_DENIED: 0
EMPTY_QUERIES: 1
SELECT * FROM INFORMATION_SCHEMA.CLIENT_STATISTICS\G
*************************** 1. row ***************************
CLIENT: localhost
TOTAL_CONNECTIONS: 3
CONCURRENT_CONNECTIONS: 0
CONNECTED_TIME: 4883
BUSY_TIME: 0.009722
CPU_TIME: 0.0102131
BYTES_RECEIVED: 841
BYTES_SENT: 13897
BINLOG_BYTES_WRITTEN: 0
ROWS_READ: 0
ROWS_SENT: 214
ROWS_DELETED: 0
ROWS_INSERTED: 207
ROWS_UPDATED: 0
SELECT_COMMANDS: 10
UPDATE_COMMANDS: 0
OTHER_COMMANDS: 13
COMMIT_TRANSACTIONS: 0
ROLLBACK_TRANSACTIONS: 0
DENIED_CONNECTIONS: 0
LOST_CONNECTIONS: 0
ACCESS_DENIED: 0
EMPTY_QUERIES: 1
1 row in set (0.00 sec)
SELECT * FROM INFORMATION_SCHEMA.INDEX_STATISTICS WHERE TABLE_NAME = "author"; +--------------+------------+------------+-----------+ | TABLE_SCHEMA | TABLE_NAME | INDEX_NAME | ROWS_READ | +--------------+------------+------------+-----------+ | books | author | by_name | 15 | +--------------+------------+------------+-----------+
SELECT * FROM INFORMATION_SCHEMA.TABLE_STATISTICS WHERE TABLE_NAME='user'; +--------------+------------+-----------+--------------+------------------------+ | TABLE_SCHEMA | TABLE_NAME | ROWS_READ | ROWS_CHANGED | ROWS_CHANGED_X_INDEXES | +--------------+------------+-----------+--------------+------------------------+ | mysql | user | 5 | 2 | 2 | +--------------+------------+-----------+--------------+------------------------+
Использование команд SHOW
В качестве альтернативы таблицам INFORMATION_SCHEMA, плагин userstat также добавляет команды SHOW USER_STATISTICS, SHOW CLIENT_STATISTICS, SHOW INDEX_STATISTICS и SHOW TABLE_STATISTICS.
Эти команды — ещё один способ отображения информации, хранящейся в таблицах схемы данных. Поддерживаются предложения WHERE. Предложения LIKE принимаются, но игнорируются.
SHOW USER_STATISTICS SHOW CLIENT_STATISTICS SHOW INDEX_STATISTICS SHOW TABLE_STATISTICS
Очистка данных плагина
Плагин userstat также добавляет команды FLUSH USER_STATISTICS, FLUSH CLIENT_STATISTICS, FLUSH INDEX_STATISTICS и FLUSH TABLE_STATISTICS, которые удаляют информацию, хранящуюся в указанной таблице схемы данных.
FLUSH USER_STATISTICS FLUSH CLIENT_STATISTICS FLUSH INDEX_STATISTICS FLUSH TABLE_STATISTICS
Версии
USER_STATISTICS
| Версия | Статус | Введено |
|---|---|---|
| 2.0 | Стабильная | MariaDB 10.1.18 |
| 2.0 | Бета | MariaDB 10.1.1 |
CLIENT_STATISTICS
| Версия | Статус | Введено |
|---|---|---|
| 2.0 | Стабильная | MariaDB 10.1.13 |
| 2.0 | Бета | MariaDB 10.1.1 |
INDEX_STATISTICS
| Версия | Статус | Введено |
|---|---|---|
| 2.0 | Стабильная | MariaDB 10.1.13 |
| 2.0 | Бета | MariaDB 10.1.1 |
TABLE_STATISTICS
| Версия | Статус | Введено |
|---|---|---|
| 2.0 | Стабильная | MariaDB 10.1.18 |
| 2.0 | Бета | MariaDB 10.1.1 |
Системные переменные
userstat
-
Описание: Если установлено в
1, будет активирована статистика пользователей. -
Командная строка:
--userstat=1 - Область действия: Глобальная
- Динамическая: Да
-
Тип данных:
boolean -
Значение по умолчанию:
OFF
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/user-statistics/