I MySQL kan du fråga information_schema.tables
tabell för att returnera information om tabellerna i en databas. Den här tabellen innehåller information om datalängden, indexlängden, såväl som andra detaljer som sortering, skapelsetid, etc. Du kan använda informationen i den här tabellen för att hitta storleken på en given databas eller alla databaser på servern.
Du kan också använda MySQL Workbench GUI för att hitta detaljer om databasen (inklusive dess storlek).
Den här artikeln ger en snabb översikt över båda metoderna.
Kodexempel
Här är ett exempel på hur du kan hitta storleken på varje databas genom att köra en fråga mot information_schema.tables
tabell:
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 | 0 | 0.00 | | Music | 98304 | 0.09 | | mysql | 2506752 | 2.39 | | performance_schema | 0 | 0.00 | | sakila | 6766592 | 6.45 | | Solutions | 16384 | 0.02 | | sys | 16384 | 0.02 | | world | 802816 | 0.77 | +--------------------+---------------+-------------+
I det här exemplet har jag listat storleken i byte och i mebibyte (MiB), men du kan välja hur du vill presentera den.
Naturligtvis kan du alltid begränsa den till en specifik databas om du behöver. Lägg bara till en WHERE
sats med namnet på databasen:
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 = 'sakila';
Resultat:
+---------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +---------------+---------------+-------------+ | sakila | 6766592 | 6.45 | +---------------+---------------+-------------+
FORMAT_BYTES()-funktionen
Du kan använda sys.FORMAT_BYTES()
funktion för att spara dig själv genom att konvertera storleken till mebibyte, kibibyte eller vad som helst. Den här funktionen tar ett värde, konverterar det till läsbart format och returnerar en sträng som består av ett värde och en enhetsindikator. Det konverterade värdet beror på värdets storlek (så resultatet kan vara i bytes
, KiB
(kibibyte), MiB
(mebibyte), GiB
(gibibyte), TiB
(tebibyte) eller PiB
(pebibytes).
Här är ett exempel på att skriva om det föregående exemplet för att använda FORMAT_BYTES()
funktion:
USE Music; SELECT table_schema 'Database Name', SUM(data_length + index_length) 'Size in Bytes', sys.FORMAT_BYTES(SUM(data_length + index_length)) 'Size (Formatted)' FROM information_schema.tables GROUP BY table_schema;
Resultat:
+--------------------+---------------+------------------+ | Database Name | Size in Bytes | Size (Formatted) | +--------------------+---------------+------------------+ | information_schema | 0 | 0 bytes | | Music | 98304 | 96.00 KiB | | mysql | 2506752 | 2.39 MiB | | performance_schema | 0 | 0 bytes | | sakila | 6766592 | 6.45 MiB | | Solutions | 16384 | 16.00 KiB | | sys | 16384 | 16.00 KiB | | world | 802816 | 784.00 KiB | +--------------------+---------------+------------------+
MySQL Workbench
Ett annat sätt att hitta databasstorleken är att använda MySQL Workbench GUI. Så här gör du:
- Navigera till databasen i
Schemas
rutan - Håll muspekaren över den tillämpliga databasen
- Klicka på den lilla informationsikonen bredvid databasnamnet. Detta laddar information om databasen, inklusive dess ungefärliga storlek, tabellantal, sammanställning, etc. Databasstorleken anges i
Info
fliken (vanligtvis standardfliken).