In MariaDB kunnen we de information_schema.tables
. opvragen tabel om de grootte van een database te controleren.
Deze tabel retourneert informatie over de tabellen en weergaven in elke database op de server. We kunnen de resultaten groeperen en de totale bedragen voor elke database retourneren.
Voorbeeld
Hier is een query die de grootte van alle databases op de server retourneert:
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;
Resultaat:
+--------------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +--------------------+---------------+-------------+ | information_schema | 212992 | 0.20 | | KrankyKranes | 131072 | 0.13 | | Music | 81920 | 0.08 | | MyDB | 32768 | 0.03 | | mysql | 4972544 | 4.74 | | performance_schema | 0 | 0.00 | | PetHouse | 81920 | 0.08 | | Zap | 37460 | 0.04 | +--------------------+---------------+-------------+
Thij information_schema.tables
tabel toont informatie over de verschillende niet-TEMPORARY
tabellen (behalve tabellen uit het Information Schema
database) en views op de server.
Hier heb ik ze gegroepeerd op database (table_schema
) en voerde wat berekeningen uit op de maten.
Enkele database
We kunnen het beperken tot slechts één database met een WHERE
clausule:
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;
Resultaat:
+---------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +---------------+---------------+-------------+ | krankykranes | 131072 | 0.13 | +---------------+---------------+-------------+
In MySQL kunnen we de sys.FORMAT_BYTES()
. gebruiken functie om de gegevenslengte-conversie uit te voeren, maar op het moment van schrijven heeft MariaDB een dergelijke functie nog niet geïmplementeerd.