Как узнать размер таблицы базы данных MySQL

41 433 просмотра 6 комментариев 10 декабря 2013

Т.к. PhpMyAdmin я не пользуюсь, а использую Navicat Premium в котором, я по ходу что то изменил случайно, и он больше не показывает размер базы данных, а вникать в настройки лень. Размер базы дынных приходится узнавать из консоли, сейчас расскажу как это сделать

Для начала нужно войти в MySQL из терминала

mysql -u root -p

Где root это имя пользователя

Для маководов использующих MAMP немного иначе, как войти в MAMP MySQL я писал ранее.

Для того чтоб посмотреть размер всех баз данных выполните команду:

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;

И на выходе получится что-то вроде

+--------------------+---------------+
| DB Name            | DB Size in MB |
+--------------------+---------------+
| habrastat          | 25.8          |
| information_schema | 0.0           |
| mysql              | 0.6           |
| performance_schema | 0.0           |
| phpmyadmin         | 0.0           |
+--------------------+---------------+
5 rows in set (0.23 sec)

Для того чтоб узнать размер таблиц конкретной базы данных:

SELECT table_name AS `Table`,
round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
FROM information_schema.TABLES
WHERE table_schema = "my_table";

Где my_table – имя интересующей базы данных.

Результат выполнения показан ниже.

+-----------------------+------------+
| Table                 | Size in MB |
+-----------------------+------------+
| authGroups            |       0.03 |
| authGroupsPermissions |       0.02 |
| authPermissions       |       0.05 |
| authUsers             |       0.02 |
| authUsersGroups       |       0.02 |
| authUsersPermissions  |       0.02 |
| comments              |       0.06 |
| configs               |       0.02 |
| contentArticles       |       1.52 |
| contentCategories     |       0.02 |
| contentPerelink       |       0.02 |
| migrations            |       0.02 |
| pages                 |       0.02 |
+-----------------------+------------+
13 rows in set (0.01 sec)

Чтоб узнать размер всех таблиц всех баз данных и отсортировать их по размеру введите:

SELECT table_schema as `Database`, table_name AS `Table`, 
round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` 
FROM information_schema.TABLES 
ORDER BY (data_length + index_length) DESC

Результат:

+--------------------+-------------------------------------------------+------------+
| Database           | Table                                           | Size in MB |
+--------------------+-------------------------------------------------+------------+
| usamotors          | cms_autos                                       |     125.97 |
| zabava-l5          | catalogFeedbacks                                |      64.58 |
| zabava-l5          | systemImages                                    |      36.55 |
| zabava             | catalog_company                                 |      33.55 |
| qa-auto            | usernames                                       |      27.03 |
| zabava-l5          | catalogCompany                                  |      22.52 |
| usamotors          | cms_autos_bids                                  |      22.52 |
| usamotors          | cms_autos_place                                 |      18.55 |
| qa-auto            | qaAnswers                                       |      17.55 |
| zabava             | cms_images                                      |      16.52 |
| zabava-l5          | catalogCompanyOptionValue                       |      16.11 |
| zabava             | catalog_company_option_value                    |       9.52 |
| zabava-l5          | catalogCompanyOption                            |       8.08 |
| qa-auto            | qaQuestions                                     |       6.52 |
| usamotors          | cms_autos_model                                 |       6.03 |

6 комментариев

Собирались узнать размер таблицы, а ограничились размером базы.
Да, действительно, обновил статью.
В разделе:
Чтоб узнать размер всех таблиц всех баз данных и отсортировать их по размеру введите:

в конце нет последний точки с запятой
в последнем примере, как внизу вывести "Итого", что бы "Size in MB" посчитал в общем сколько будет?
Александр Пивнев
8 февраля 2022
круто!

Вы можете оставить комментарий