sql >> Databáze >  >> RDS >> Mysql

Jak zkontrolovat velikost všech tabulek v databázi v MySQL

V MySQL můžete zkontrolovat velikost všech tabulek v dané databázi (nebo ve všech databázích) dotazem na information_schema.tables stůl. Tato tabulka ukládá data o každé tabulce v databázi, včetně informací o velikosti každé tabulky, datu vytvoření, řazení atd.

Velikost každé tabulky v databázi můžete také zjistit pomocí GUI MySQL Workbench.

Tento článek poskytuje rychlý přehled každé metody.

Příklad kódu

Zde je příklad dotazu SQL, který vrací velikost tabulek v databázi.

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;

Výsledek:

+----------------------------+---------------+-------------+
| 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 |
+----------------------------+---------------+-------------+

To vrátí velikost každé tabulky v sakila databáze. Nahraďte sakila s názvem příslušné databáze. Samozřejmě můžete vynechat WHERE klauzule dohromady, a to vrátí velikost tabulky všech tabulek ve všech databázích, ale bude to dlouhý seznam.

V tomto případě jsem výsledky seřadil podle velikosti tabulky v sestupném pořadí. Také jsem přidal sloupec s velikostí převedenou na MiB (mebibajty).

Další metodou převodu velikosti je použití sys.FORMAT_BYTES() funkce.

Funkce sys.FORMAT_BYTES()

Můžete použít sys.FORMAT_BYTES() funkci převést velikost z bajtů na buď bytes , KiB (kibibajty), MiB (mebibajty), GiB (gibibajty), TiB (tebibajty) nebo PiB (pebibajty), přičemž k hodnotě se přičte ukazatel jednotek. Indikátor jednotek se přidá automaticky. Funkce rozhodne, na kterou jednotku se má převést, v závislosti na velikosti hodnoty, takže nemáte žádnou kontrolu nad tím, kterou jednotku použít.

Zde je příklad použití této metody:

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;

Výsledek:

+----------------------------+---------------+------------------+
| 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

Pokud používáte grafické uživatelské rozhraní MySQL Workbench, můžete ukazovat a klikat na velikosti tabulky. Zde je postup:

  1. Přejděte do databáze v Schemas podokno
  2. Najeďte myší na příslušnou databázi
  3. Klikněte na malou informační ikonu vedle názvu databáze. Tím se načtou informace o databázi, včetně její přibližné velikosti, počtu tabulek, řazení atd.
  4. Klikněte na Tables tab. Zobrazí se informace o každé tabulce v databázi, včetně délky dat a délky indexu.

  1. Nelze zkrátit tabulku, protože na ni odkazuje omezení FOREIGN KEY - SQL Server / Výukový program TSQL, část 70

  2. PgBouncer 1.7 – „Barvy se po vzkříšení mění“

  3. Správné vložení názvu tabulky

  4. Jak spojit více (3+) stolů v jednom příkazu