In MySQL kunt u de information_schema.tables
. opvragen table om informatie over de tabellen in een database te retourneren. Deze tabel bevat informatie over de gegevenslengte, indexlengte, evenals andere details zoals sortering, aanmaaktijd, enz. U kunt de informatie in deze tabel gebruiken om de grootte van een bepaalde database of alle databases op de server te vinden.
U kunt ook de MySQL Workbench GUI gebruiken om details over de database te vinden (inclusief de grootte).
Dit artikel geeft een kort overzicht van beide methoden.
Codevoorbeeld
Hier is een voorbeeld van het vinden van de grootte van elke database door een query uit te voeren op de information_schema.tables
tafel:
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 | 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 | +--------------------+---------------+-------------+
In dit voorbeeld heb ik de grootte weergegeven in bytes en in mebibytes (MiB), maar je kunt kiezen hoe je het wilt presenteren.
Natuurlijk kunt u het altijd beperken tot een specifieke database als dat nodig is. Voeg eenvoudig een WHERE
. toe clausule met de naam van de database:
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';
Resultaat:
+---------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +---------------+---------------+-------------+ | sakila | 6766592 | 6.45 | +---------------+---------------+-------------+
De FORMAT_BYTES() Functie
U kunt de sys.FORMAT_BYTES()
. gebruiken functie om uzelf te besparen door de grootte om te zetten in mebibytes, kibibytes of wat dan ook. Deze functie neemt een waarde, converteert deze naar een door mensen leesbaar formaat en retourneert een tekenreeks die bestaat uit een waarde en een eenheidsindicator. De geconverteerde waarde is afhankelijk van de grootte van de waarde (dus het resultaat kan in bytes
zijn , KiB
(kibibytes), MiB
(mebibytes), GiB
(gibibytes), TiB
(tebibytes), of PiB
(pebibytes).
Hier is een voorbeeld van het herschrijven van het vorige voorbeeld om de FORMAT_BYTES()
te gebruiken functie:
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;
Resultaat:
+--------------------+---------------+------------------+ | 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-werkbank
Een andere manier om de databasegrootte te vinden, is door de MySQL Workbench GUI te gebruiken. Hier is hoe:
- Navigeer naar de database in de
Schemas
deelvenster - Beweeg over de betreffende database
- Klik op het kleine informatiepictogram naast de databasenaam. Dit laadt informatie over de database, inclusief de geschatte grootte, het aantal tabellen, sortering, enz. De databasegrootte wordt vermeld op de
Info
tabblad (meestal het standaardtabblad).