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

Jak zkontrolovat velikost databáze v MySQL

V MySQL můžete dotazovat information_schema.tables table vrátit informace o tabulkách v databázi. Tato tabulka obsahuje informace o délce dat, délce indexu a také další podrobnosti, jako je řazení, čas vytvoření atd. Informace v této tabulce můžete použít k nalezení velikosti dané databáze nebo všech databází na serveru.

K nalezení podrobností o databázi (včetně její velikosti) můžete také použít grafické uživatelské rozhraní MySQL Workbench.

Tento článek poskytuje rychlý přehled obou metod.

Příklad kódu

Zde je příklad zjištění velikosti každé databáze spuštěním dotazu proti information_schema.tables tabulka:

SELECT table_schema 'Název databáze', SUM(délka_dat + délka_indexu) 'Velikost v bajtech', ROUND(SUM(délka_dat + délka_indexu) / 1024 / 1024, 2) 'Velikost v MiB'FROM information_schema.tables GROUP BY schéma_tabulky; 

Výsledek:

+--------------------+---------------+--------- ----+| Název databáze | Velikost v bytech | Velikost v MiB |+--------------------+---------------+--------- -----+| informační_schéma | 0 | 0,00 || Hudba | 98304 | 0,09 || mysql | 2506752 | 2,39 || výkonnostní_schéma | 0 | 0,00 || sakila | 6766592 | 6,45 || Řešení | 16384 | 0,02 || sys | 16384 | 0,02 || svět | 802816 | 0,77 |+--------------------+---------------+----------- ---+

V tomto příkladu jsem uvedl velikost v bajtech a v mebibajtech (MiB), ale můžete si vybrat, jak ji chcete prezentovat.

V případě potřeby ji samozřejmě můžete vždy zúžit na konkrétní databázi. Jednoduše přidejte WHERE klauzule s názvem databáze:

SELECT table_schema 'Název databáze', SUM(délka_dat + délka_indexu) 'Velikost v bajtech', ROUND(SUM(délka_dat + délka_indexu) / 1024 / 1024, 2) 'Velikost v MiB'FROM information_schema.tables WHERE schéma_tabulky =' sakila';

Výsledek:

+---------------+---------------+-------------+ | Název databáze | Velikost v bytech | Velikost v MiB |+---------------+---------------+-------------- +| sakila | 6766592 | 6,45 |+---------------+---------------+------------+ 

Funkce FORMAT_BYTES()

Můžete použít sys.FORMAT_BYTES() funkce, abyste si ušetřili převod velikosti na mebibajty, kibibajty nebo cokoli jiného. Tato funkce převezme hodnotu, převede ji do formátu čitelného člověkem a vrátí řetězec skládající se z hodnoty a indikátoru jednotek. Převedená hodnota bude záviset na velikosti hodnoty (výsledek tedy může být v bytes , KiB (kibibajty), MiB (mebibajty), GiB (gibibajty), TiB (tebibajty) nebo PiB (pebibajty).

Zde je příklad přepsání předchozího příkladu pro použití FORMAT_BYTES() funkce:

USE Music;SELECT table_schema 'Název databáze', SUM(délka_dat + délka_indexu) 'Velikost v bajtech', sys.FORMAT_BYTES(SUM(délka_dat + délka_indexu)) 'Velikost (Formátováno)'FROM information_schema.tables GROUP BY schéma_tabulky; 

Výsledek:

+--------------------+---------------+--------- ---------+| Název databáze | Velikost v bytech | Velikost (formátováno) |+--------------------+---------------+------- -----------+| informační_schéma | 0 | 0 bajtů || Hudba | 98304 | 96,00 KiB || mysql | 2506752 | 2,39 MiB || výkonnostní_schéma | 0 | 0 bajtů || sakila | 6766592 | 6,45 MiB || Řešení | 16384 | 16,00 KiB || sys | 16384 | 16,00 KiB || svět | 802816 | 784,00 KiB |+--------------------+---------------+--------- ---------+

MySQL Workbench

Dalším způsobem, jak zjistit velikost databáze, je použít grafické uživatelské rozhraní MySQL Workbench. Zde je postup:

  1. Přejděte do databáze v části 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. Velikost databáze je uvedena v Info tab (obvykle výchozí karta).

  1. Oracle:Co dělá `(+)` v klauzuli WHERE?

  2. Chyba MySQL #1071 - Zadaný klíč byl příliš dlouhý; maximální délka klíče je 767 bajtů

  3. Vypněte varování v sqlalchemy

  4. syntaxe pro jeden řádek MERGE / upsert v SQL Server