MySQL / 9. Получение и использование метаданных

Мониторинг сервера MySQL

Задача
Вы хотите посмотреть, как был сконфигурирован сервер, или отслеживать его состояние.

Решение
Используйте для этого предложения SHOW VARIABLES и SHOW STATUS.

Обсуждение
Предложения SHOW VARIABLES и SHOW STATUS выводят информацию о конфигурации сервера и его рабочие характеристики:

mysql> SHOW VARIABLES;

+-------------------------+-------------------+
| Variable_name           | Value                  |
+-------------------------+-------------------+
| back_log                    | 50                       |
| basedir                      | /usr/local/mysql/ |
| bdb_cache_size        | 8388600              |
| bdb_log_buffer_size | 0                         |
| bdb_home                 |                            |
...

mysql> SHOW STATUS;

+----------------------+------------+
| Variable_name       | Value        |
+----------------------+------------+
| Aborted_clients     | 319           |
| Aborted_connects | 22             |
| Bytes_received      | 32085033 |
| Bytes_sent            | 26379272 |
| Connections          | 65684       |
...

Такая информация полезна для создания административных приложений. Например, вы можете написать фоновую программу, которая периодически исследует активность сервера. Простое приложение такого типа может запрашивать у сервера количество установленных соединений и время работы для определения усредненной активности клиентов. Запросы для получения такой информации выглядят так:

SHOW STATUS LIKE 'Connections';
SHOW STATUS LIKE 'Uptime';

Если вы не хотите заново устанавливать соединение при каждом запуске запросов, то можете запросить у сервера значение его тайм-аута для клиентских приложений и обращаться к серверу через промежутки времени, не превышающие полученное значение. Величину тайм-аута в секундах можно получить в таком запросе:

SHOW VARIABLES LIKE 'wait_timeout';

Значение по умолчанию равно 28 800 (8 часов), хотя в вашей системе оно может быть другим.

Статьи по MySQL на эту тему:

Определение типов таблиц, поддерживаемых сервером