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 vbytes
,KiB
(kibibajty),MiB
(mebibajty),GiB
(gibibajty),TiB
(tebibajty) neboPiB
(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:
- Přejděte do databáze v části
Schemas
podokno- Najeďte myší na příslušnou databázi
- 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).