MySQL определение размера баз данных

Заметка о том, как можно узнать размер баз на сервере MySQL с помощью sql запроса.

Для определения размера все баз необходимо выполнить следующий sql запрос (в мегабайтах):

SELECT table_schema AS "Database", 
ROUND((SUM(data_length + index_length) / 1024 / 1024), 1) AS "Size (MB)" 
    FROM information_schema.TABLES 
GROUP BY table_schema;

Или в гигабайтах:

SELECT table_schema AS "Database", 
ROUND((SUM(data_length + index_length) / 1024 / 1024 / 1024), 2) AS "Size (GB)" 
    FROM information_schema.TABLES 
GROUP BY table_schema;

В ответ получим:

+--------------------+-----------+
| Database           | Size (MB) |
+--------------------+-----------+
| information_schema |      0.00 |
| mysql              |      0.00 |
| performance_schema |      0.00 |
| phpmyadmin         |      0.00 |
| zabbix             |    103.63 |
+--------------------+-----------+

+--------------------+-----------+
| Database           | Size (GB) |
+--------------------+-----------+
| information_schema |      0.00 |
| mysql              |      0.00 |
| performance_schema |      0.00 |
| phpmyadmin         |      0.00 |
| zabbix             |    103.63 |
+--------------------+-----------+

Если необходимо узнать размер конкретной базы:

SELECT SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2)) AS "SIZE IN MB"
    FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = "zabbix";

SELECT SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024), 2)) AS "SIZE IN GB"
    FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = "zabbix";

И вывод:

+------------+
| SIZE IN MB |
+------------+
|  106119.18 |
+------------+

+------------+
| SIZE IN GB |
+------------+
|     103.60 |
+------------+

Если необходимо определить размер баз на диске (работает при включенной опции innodb_file_per_table для баз использующих InnoDB):

sudo du -h --max-depth=1 /var/lib/mysql
8,0K	/var/lib/mysql/performance_schema
268K	/var/lib/mysql/phpmyadmin
1,7M	/var/lib/mysql/mysql
124G	/var/lib/mysql/zabbix
124G	/var/lib/mysql