Узнать размер базы данных через консоль mysql

Существует куча различных инструментов с графическим интерфейсом для управления и обслуживания баз данных (mysqladmin, navicat и прочие), плюс возможности панелей управления сервером, где можно получить информацию о базах данных, таблицах, пользователях. Однако иногда, при работе в консоли сервера через ssh, нужно по быстрому получить размеры существующих баз данных mysql. Для этого достаточно зайти в консольный клиент mysql и выполнить sql запрос.
root@localhost:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 43764664
Server version: 5.5.46-0+deb7u1 (Debian)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
В данном случае мы вошли из под рута. Выполняем запрос:
mysql> SELECT table_schema "database_name", sum( data_length + index_length )/1024/1024 "database size in MB" FROM information_schema.TABLES GROUP BY table_schema;
+--------------------+---------------------+
| database_name      | database size in MB |
+--------------------+---------------------+
| database1         |         21.73606873 |
| database2        |          0.79687500 |
| information_schema |          0.00878906 |
| mysql              |          0.68143845 |
| roundcube          |          0.40625000 |
+--------------------+---------------------+
7 rows in set (0.14 sec)
Во второй колонке видим размер каждой базы данных. Что-бы узнать размер какой-то конкретной базы данных, чуть модифицируем sql запрос и получаем:
mysql> SELECT table_schema "database_name", sum( data_length + index_length )/1024/1024 "database size in MB" FROM information_schema.TABLES WHERE table_schema="festivalse";
+---------------+---------------------+
| database_name | database size in MB |
+---------------+---------------------+
| database1   |         21.73606873 |
+---------------+---------------------+
1 row in set (0.01 sec)
В данном случае вместо группировки GROUP BY table_schema, мы сделали выборку по имени базы данных WHERE table_schema="database1". Удачи.

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
Регистр имеет значение
 oooooo     oooo  oooooooooo.              oooo           .oooo.      .oooo.   
`888. .8' `888' `Y8b `888 .dP""Y88b .dP""Y88b
`888. .8' 888 888 .ooooo. 888 .oo. ]8P' ]8P'
`888. .8' 888oooo888' d88' `"Y8 888P"Y88b .d8P' .d8P'
`888.8' 888 `88b 888 888 888 .dP' .dP'
`888' 888 .88P 888 .o8 888 888 .oP .o .oP .o
`8' o888bood8P' `Y8bod8P' o888o o888o 8888888888 8888888888


Введите код, изображенный в стиле ASCII-арт.