Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да проверите размера на всички таблици в база данни в MySQL

В MySQL можете да проверите размера на всички таблици в дадена база данни (или във всички бази данни), като направите заявка за information_schema.tables маса. Тази таблица съхранява данни за всяка таблица в база данни, включително информация за размера на всяка таблица, датата на създаване, съпоставянето и т.н.

Можете също да намерите размера на всяка таблица в база данни, като използвате графичния интерфейс на MySQL Workbench.

Тази статия предоставя бърз преглед на всеки метод.

Пример за код

Ето пример за SQL заявка, която връща размера на таблиците в база данни.

SELECT 
    table_name 'Table Name',
    data_length + index_length 'Size in Bytes',
    ROUND(((data_length + index_length) / 1024 / 1024), 2) 'Size in MiB'
FROM information_schema.tables
WHERE table_schema = 'sakila'
ORDER BY (data_length + index_length) DESC;

Резултат:

+----------------------------+---------------+-------------+
| Table Name                 | Size in Bytes | Size in MiB |
+----------------------------+---------------+-------------+
| rental                     |       2785280 |        2.66 |
| payment                    |       2228224 |        2.13 |
| inventory                  |        376832 |        0.36 |
| film                       |        278528 |        0.27 |
| film_actor                 |        278528 |        0.27 |
| film_text                  |        196608 |        0.19 |
| customer                   |        131072 |        0.13 |
| address                    |        114688 |        0.11 |
| staff                      |         98304 |        0.09 |
| film_category              |         81920 |        0.08 |
| city                       |         65536 |        0.06 |
| store                      |         49152 |        0.05 |
| actor                      |         32768 |        0.03 |
| country                    |         16384 |        0.02 |
| language                   |         16384 |        0.02 |
| category                   |         16384 |        0.02 |
| staff_list                 |             0 |        0.00 |
| customer_list              |             0 |        0.00 |
| nicer_but_slower_film_list |             0 |        0.00 |
| actor_info                 |             0 |        0.00 |
| sales_by_film_category     |             0 |        0.00 |
| film_list                  |             0 |        0.00 |
| sales_by_store             |             0 |        0.00 |
+----------------------------+---------------+-------------+

Това връща размера на всяка таблица в sakila база данни. Заменете sakila с името на съответната база данни. Разбира се, можете да пропуснете WHERE клауза като цяло и това ще върне размера на таблицата на всички таблици във всички бази данни, но това ще бъде дълъг списък.

В този случай подредих резултатите по размер на таблицата в низходящ ред. Добавих и колона с преобразуван размер в MiB (мебибайти).

Друг метод за преобразуване на размера е да използвате sys.FORMAT_BYTES() функция.

Функцията sys.FORMAT_BYTES()

Можете да използвате sys.FORMAT_BYTES() функция за преобразуване на размера от байтове в bytes , KiB (кибибайта), MiB (мебибайта), GiB (гибибайта), TiB (тебибайта) или PiB (пебибайта), като индикаторът за единици е добавен към стойността. Индикаторът за единици се добавя автоматично. Функцията ще реши в коя единица да се преобразува, в зависимост от размера на стойността, така че нямате контрол върху това коя единица да използвате.

Ето пример за използване на този метод:

SELECT 
    table_name 'Table Name',
    data_length + index_length 'Size in Bytes',
    sys.FORMAT_BYTES((data_length + index_length)) 'Size (Formatted)'
FROM information_schema.tables
WHERE table_schema = 'sakila'
ORDER BY (data_length + index_length) DESC;

Резултат:

+----------------------------+---------------+------------------+
| Table Name                 | Size in Bytes | Size (Formatted) |
+----------------------------+---------------+------------------+
| rental                     |       2785280 | 2.66 MiB         |
| payment                    |       2228224 | 2.12 MiB         |
| inventory                  |        376832 | 368.00 KiB       |
| film                       |        278528 | 272.00 KiB       |
| film_actor                 |        278528 | 272.00 KiB       |
| film_text                  |        196608 | 192.00 KiB       |
| customer                   |        131072 | 128.00 KiB       |
| address                    |        114688 | 112.00 KiB       |
| staff                      |         98304 | 96.00 KiB        |
| film_category              |         81920 | 80.00 KiB        |
| city                       |         65536 | 64.00 KiB        |
| store                      |         49152 | 48.00 KiB        |
| actor                      |         32768 | 32.00 KiB        |
| category                   |         16384 | 16.00 KiB        |
| country                    |         16384 | 16.00 KiB        |
| language                   |         16384 | 16.00 KiB        |
| actor_info                 |             0 | 0 bytes          |
| customer_list              |             0 | 0 bytes          |
| film_list                  |             0 | 0 bytes          |
| nicer_but_slower_film_list |             0 | 0 bytes          |
| sales_by_film_category     |             0 | 0 bytes          |
| sales_by_store             |             0 | 0 bytes          |
| staff_list                 |             0 | 0 bytes          |
+----------------------------+---------------+------------------+

MySQL Workbench

Ако използвате графичния интерфейс на MySQL Workbench, можете да посочите и щракнете по пътя към размерите на таблицата. Ето как:

  1. Отворете базата данни в Schemas панел
  2. Задръжте курсора на мишката върху приложимата база данни
  3. Щракнете върху малката икона за информация до името на базата данни. Това зарежда информация за базата данни, включително нейния приблизителен размер, брой таблици, съпоставяне и т.н.
  4. Щракнете върху Tables раздел. Това показва информация за всяка таблица в базата данни, включително дължината на данните и дължината на индекса.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използвайте MySQL релационни бази данни в Ubuntu 8.04 (Hardy)

  2. Как да свържа приложението за Android към базата данни MySQL?

  3. Какъв тип/дължина на колона трябва да използвам за съхраняване на хеширана парола на Bcrypt в база данни?

  4. Rails 3 ActiveRecord:Подреждане по брой на асоцииране

  5. Свързване с отдалечен MySQL сървър с помощта на PHP