Как узнать размер базы данных mysql?

312

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

  • 0
    Для конкретной таблицы / конкретного размера базы данных поможет скрипт, предоставленный здесь, информация рассчитывается из таблицы information_schema.tables, подробный ответ см. Здесь rathishkumar.in/2017/12/…
Теги:
database

6 ответов

699
Лучший ответ

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

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, где доступны более полные инструкции.

  • 0
    этот выбор не показывает мне все. Я пытался проверить базу данных OTRS, и таблицы с вложением (возможно, некоторые поля BLOB) отображаются неправильно рассчитать ... какой-нибудь workaroud?
  • 1
    Даже после того, как я удалю большую часть данных из таблиц в базе данных, размер остается неизменным
Показать ещё 9 комментариев
21

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

  • 5
    Примечание: файлы ibd существуют только при использовании innodb_file_per_table
  • 0
    Этот ответ очень специфичен для механизма хранения. Ответ @ brian-willis более уместен.
14

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

Экран:

Изображение 854

2

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

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

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

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

Его можно определить, используя следующую команду 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
  • 1
    Ницца. Мне нравится этот ответ.
0
mysqldiskusage  --server=root:MyPassword@localhost  pics

+----------+----------------+
| db_name  |         total  |
+----------+----------------+
| pics     | 1,179,131,029  |
+----------+----------------+
  • 1
    «Программа« mysqldiskusage »в настоящее время не установлена. Чтобы запустить« mysqldiskusage », пожалуйста, попросите вашего администратора установить пакет« mysql-utilities »» - предложите вам добавить шаги установки также для получения дополнительных точек :) »

Ещё вопросы

Сообщество Overcoder
Наверх
Меню