Як отримати розмір бази даних mysql?


542

Як отримати розмір бази даних mysql?
Припустимо, цільова база даних називається "v3".


Для конкретного розміру таблиці / конкретного розміру бази даних допоможе запропонований тут скрипт, інформація обчислюється з таблиці information_schema.tables, детальну відповідь див. Тут rathishkumar.in/2017/12/…
Rathish

Відповіді:


1184

Запустіть цей запит, і ви, ймовірно, отримаєте те, що шукаєте:

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 , де доступні більш вичерпні інструкції.


4
Навіть після того, як я
видаляю

2
@Vidz ти використовуєш двигун InnoDB. Якщо це так, ви можете звільнити місце, якщо не використовуєте файли file_per_table та alter.
мандза

5
Будь ласка, майте на увазі, що цей метод не повертає жодної з баз даних, які є повністю порожніми, принаймні одна таблиця повинна існувати, щоб база даних з’явилася в результаті.
v010dya

13
Щоб вибрати з однієї бази даних, додайте це між рядком FROMі GROUP: where table_schema='DATABASE_NAME'- замінивши DATABASE_NAMEсвою базу даних.
KJ Ціна

2
Примітка: MySQL Workbench виправить Syntax error: {column title} (double quoted text) is not valid input here.помилку. Назви стовпців повинні бути загорнуті галочками. Тобто Database Name.
KareemElashmawy

75

Визначити це можна за допомогою наступної команди 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

2
Приємно. Мені подобається ця відповідь.
профан

31

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

Екран:

введіть тут опис зображення


26

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


7
Примітка: файли ibd існують лише в тому випадку, якщо використовується innodb_file_per_table
Slashterix

2
Ця відповідь дуже специфічна для двигуна зберігання даних. Відповідь @ brian-willis є більш доречною.
Ману Манджунат

15

Щоб отримати результат в МБ:

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";

11
mysqldiskusage  --server=root:MyPassword@localhost  pics

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

Якщо це не встановлено, це можна встановити, встановивши mysql-utilsпакет, який повинен бути упакований більшістю основних дистрибутивів.


4

Перший вхід у MySQL за допомогою

mysql -u username -p

Команда для відображення розміру однієї бази даних разом з її таблицею в МБ.

SELECT table_name AS "Table",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
FROM information_schema.TABLES
WHERE table_schema = "database_name"
ORDER BY (data_length + index_length) DESC;

Змініть ім'я_бази_файлів у базі даних

Команда для відображення всіх баз даних з її розміром у МБ.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.