Смотрим размеры таблиц в MySQL
Решил зафиксировать полезный SQL код, который ни раз использовал сам. Относительно часто возникает потребность оценить размеры таблиц в текущей базе данных и не всегда под рукой имеются удобные GUI, которые сразу приходят на ум после постановки задачи.
В целом, нам необходимо выполнить только один простой запрос, которого более чем достаточно:
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;
В результате получаем список таблиц и их размеров в МБ отсортированных по убыванию:
+------------------------------------+-----------+
| Table | Size (MB) |
+------------------------------------+-----------+
| user_timeline | 193.20 |
| user_profile | 98.72 |
| user | 32.55 |
...
Это весьма полезная информация как для общего понимания, так и для поиска мест потенциальных оптимизаций.