13g10n
На главную

Смотрим размеры таблиц в MySQL

MySQL1 минута
Also available in English

Решил зафиксировать полезный SQL код, который ни раз использовал сам. Относительно часто возникает потребность оценить размеры таблиц в текущей базе данных и не всегда под рукой имеются удобные GUI, которые сразу приходят на ум после постановки задачи.

В целом, нам необходимо выполнить только один простой запрос, которого более чем достаточно:

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

В результате получаем список таблиц и их размеров в МБ отсортированных по убыванию:

Terminal
+------------------------------------+-----------+
| Table                              | Size (MB) |
+------------------------------------+-----------+
| user_timeline                      |    193.20 |
| user_profile                       |     98.72 |
| user                               |     32.55 |
...

Это весьма полезная информация как для общего понимания, так и для поиска мест потенциальных оптимизаций.

MySQL