Если вы пользуетесь phpMyAdmin или похожим менеджером баз данных, то привыкли видеть размеры таблиц в списке.
Порою, нет возможности установить дополнительные инструменты на сервер, но это не страшно, т.к. требуемую информацию получить не сложно.
Нужные нам данные хранятся в служебной базе mySQL — information_schema. Чтобы получить список таблиц и их размеров для некоторой базы данных, к примеру, BASE, достаточно выполнить следующий запрос:
1 2 3 4 5 6 |
SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = 'BASE' /* AND table_name like 'cache_%' */ ORDER BY (data_length + index_length) DESC; |
Как видите, отдельно ведется учет места занимаемого данными и индексом таблиц. Также я закомментировал фильтр по имени таблиц, где в моём случае выводились данные только для таблиц с названием начинающемся с ‘cache_’.
Еще один сниппет запроса: подсчитывает размер всех кешей в базах друпал проектов на сервере:
1 2 3 4 5 6 7 8 |
SELECT table_schema AS `base`, sum( ((data_length + index_length) / 1024 / 1024)) `Size in MB` FROM information_schema.TABLES WHERE table_name like 'cache_%' GROUP BY table_schema ORDER BY (data_length + index_length) DESC ; |