V MariaDB se můžeme dotazovat na information_schema.tables
tabulka pro kontrolu velikosti databáze.
Tato tabulka vrací informace o tabulkách a pohledech v každé databázi na serveru. Výsledky můžeme seskupit a vrátit souhrnné částky pro každou databázi.
Příklad
Zde je dotaz, který vrací velikost všech databází na serveru:
SELECT
table_schema 'Database Name',
SUM(data_length + index_length) 'Size in Bytes',
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) 'Size in MiB'
FROM information_schema.tables
GROUP BY table_schema;
Výsledek:
+--------------------+---------------+--------- ----+| Název databáze | Velikost v bytech | Velikost v MiB |+--------------------+---------------+--------- -----+| informační_schéma | 212992 | 0,20 || KrankyKranes | 131072 | 0,13 || Hudba | 81920 | 0,08 || MojeDB | 32768 | 0,03 || mysql | 4972544 | 4,74 || výkonnostní_schéma | 0 | 0,00 || PetHouse | 81920 | 0,08 || Zap | 37460 | 0,04 |+--------------------+---------------+----------- ---+
Tinformation_schema.tables
tabulka zobrazuje informace o různých neTEMPORARY
tabulky (kromě tabulek z Information Schema
databáze) a zobrazení na serveru.
Zde jsem je seskupil podle databáze (table_schema
) a provedli některé výpočty velikostí.
Jedna databáze
Můžeme to zúžit na jedinou databázi pomocí WHERE
klauzule:
SELECT
table_schema 'Database Name',
SUM(data_length + index_length) 'Size in Bytes',
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) 'Size in MiB'
FROM information_schema.tables
WHERE table_schema = 'KrankyKranes'
GROUP BY table_schema;
Výsledek:
+---------------+---------------+-------------+ | Název databáze | Velikost v bytech | Velikost v MiB |+---------------+---------------+-------------- +| krankykranes | 131072 | 0,13 |+---------------+---------------+------------+V MySQL můžeme použít
sys.FORMAT_BYTES()
funkci pro převod délky dat, ale v době psaní tohoto článku MariaDB ještě takovou funkci neimplementovala.