I MariaDB kan vi fråga information_schema.tables
tabell för att kontrollera storleken på en databas.
Den här tabellen returnerar information om tabellerna och vyerna i varje databas på servern. Vi kan gruppera resultaten och returnera de sammanlagda beloppen för varje databas.
Exempel
Här är en fråga som returnerar storleken på alla databaser på servern:
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;
Resultat:
+--------------------+---------------+-------------+ | 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 | +--------------------+---------------+-------------+
The information_schema.tables
Tabell visar information om de olika icke-TEMPORARY
tabeller (förutom tabeller från Information Schema
databas) och vyer på servern.
Här grupperade jag dem efter databas (table_schema
) och körde några beräkningar på storlekarna.
Enskild databas
Vi kan begränsa den till bara en databas med en WHERE
klausul:
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;
Resultat:
+---------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +---------------+---------------+-------------+ | krankykranes | 131072 | 0.13 | +---------------+---------------+-------------+
I MySQL kan vi använda sys.FORMAT_BYTES()
funktion för att göra datalängdskonverteringen, men när detta skrivs har MariaDB ännu inte implementerat en sådan funktion.