MySQL: Как узнать размер базы данных и найти «тяжелые» таблицы
Ваша база данных MySQL медленно работает, а серверу не хватает места? Всему виной может быть разросшаяся база, о реальных размерах которой вы даже не подозреваете. Это касается не только крупных компаний, но и владельцев сайтов, которые хранят в MySQL динамический контент.
Знать точный объем данных — это первый шаг к оптимизации. Мы покажем вам, как быстро оценить масштаб «бедствия» и выявить главных пожирателей дискового пространства.
Вы научитесь определять размер всей базы данных и каждой таблицы в отдельности с помощью простых SQL-запросов. Больше не нужно гадать — только точные цифры в мегабайтах или гигабайтах.
Мы разберем два подхода: для тех, кто предпочитает мощь командной строки, и для любителей наглядного интерфейса phpMyAdmin. Узнайте, какие таблицы занимают больше всего места и тормозят вашу работу.
Готовы взять под контроль свое дисковое пространство и ускорить работу приложений? Переходите к статье и узнайте все эффективные способы анализа прямо сейчас!
В наше время базы данных используются практически везде, я уже не говорю про крупные компании и команды разработчиков приложений, даже веб-мастера, которые делают свои сайты используют базы данных для хранения динамически изменяющейся информации. Обычно это одна из самых популярных баз данных - MariaDB или MySQL.
Но сколько занимает ваша база данных? А каждая таблица? Для больших проектов эти показатели могут достигать очень больших значений. В сегодняшней статье мы поговорим о том, как узнать размер базы данных MySQL через консоль и другими способами.
Содержание статьи
Размер базы данных MySQL
Я предполагаю, что ваша база данных установлена в Linux, но большинство методов будут работать и для других операционных систем. Самый простой способ прикинуть сколько места занимают все базы данных - это посмотреть размер папки с файлами базы данных в системе - /var/lib/mysql:
du -h /var/lib/mysql
Утилита позволяет узнать размер базы Mysql в мегабайтах. Но будет гораздо более правильно смотреть информацию о базе данных с помощью ее встроенных инструментов. Для в MySQL есть специальная таблица - Information_schema. Из нее мы и будем брать данные. Но сначала подключитесь к базе данных:
mysql -u root -p
SELECT table_schema AS "Имя базы данных",
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Размер в Мб"
FROM information_schema.TABLES
GROUP BY table_schema;
Запрос выведет точный размер базы MySQL для каждой из существующих баз, теперь вы можете ориентироваться что и сколько занимает. Если у вас очень большой проект и большая база данных, то вы можете выводить информацию в гигабайтах:
SELECT table_schema AS "Имя базы данных",
ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS "Размер в Гб"
FROM information_schema.TABLES
GROUP BY table_schema;
Но это еще не все. Возможно, в базе данных есть ненужная информация, которая только замедляет работу системы. Мы можем посмотреть размер таблиц для каждой из баз данных. Запрос для этого будет выглядеть следующим образом:
SELECT table_name AS "Имя таблицы",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size in (MB)"
FROM information_schema.TABLES
WHERE table_schema = "wpfc_options"
ORDER BY (data_length + index_length) DESC;
Данная информация помогает понять какая таблица сколько занимает и это уже может навести на интересные мысли.
Размер базы данных в Phpmyadmin
Если вы не очень любите работать в терминале, то вы всегда можете использовать Phpmyadmin для просмотра размера базы данных. Размер каждой из таблиц базы данных вы можете посмотреть на вкладке "Структура", когда выберите базу данных для работы:
Что касается размера самой базы данных, то придется выполнить тот же запрос в интерфейсе программы на вкладке "SQL":
Выводы
В этой небольшой статье мы рассмотрели как узнать размер базы данных MySQL несколькими способами. Если у вас остались вопросы, спрашивайте в комментариях!