Как получить размер базы данных MySQL? - PullRequest
460 голосов
/ 14 ноября 2009

Как узнать размер базы данных mysql?
Предположим, что целевая база данных называется "v3".

Ответы [ 7 ]

1031 голосов
/ 14 ноября 2009

Запустите этот запрос, и вы, вероятно, получите то, что ищете:

SELECT table_schema "DB Name",
        ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" 
FROM information_schema.tables 
GROUP BY table_schema; 

Этот запрос поступил с форумов mysql , где доступны более полные инструкции.

45 голосов
/ 04 декабря 2017

Это можно определить с помощью следующей команды MySQL

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

Результат

Database    Size (MB)
db1         11.75678253
db2         9.53125000
test        50.78547382

Получить результат в ГБ

SELECT table_schema AS "Database", SUM(data_length + index_length) / 1024 / 1024 / 1024 AS "Size (GB)" FROM information_schema.TABLES GROUP BY table_schema
25 голосов
/ 29 марта 2013

Кроме того, если вы используете phpMyAdmin, вы можете взглянуть на сумму размеров таблиц в нижнем колонтитуле вашей базы данных structure на вкладке. Фактический размер базы данных может немного превышать этот размер, однако он соответствует описанному выше методу table_schema.

Снимок экрана:

enter image description here

25 голосов
/ 14 ноября 2009

В качестве альтернативы вы можете напрямую перейти в каталог данных и проверить совместный размер v3.myd, v3. myi и v3. файлы frm (для myisam) или v3.idb & v3.frm (для innodb).

11 голосов
/ 11 сентября 2017

Чтобы получить результат в МБ:

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

Чтобы получить результат в ГБ:

SELECT
SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024), 2)) AS "SIZE IN GB"
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = "SCHEMA-NAME";
8 голосов
/ 29 ноября 2017
mysqldiskusage  --server=root:MyPassword@localhost  pics

+----------+----------------+
| db_name  |         total  |
+----------+----------------+
| pics     | 1,179,131,029  |
+----------+----------------+

Если он не установлен, его можно установить, установив пакет mysql-utils, который должен быть упакован большинством основных дистрибутивов.

2 голосов
/ 13 июня 2018

Зайдите в каталог данных mysql и запустите du -h --max-deep = 1 | grep databasename

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...