In MySQL können Sie die information_schema.tables
abfragen table, um Informationen über die Tabellen in einer Datenbank zurückzugeben. Diese Tabelle enthält Informationen über die Datenlänge, die Indexlänge sowie andere Details wie Sortierung, Erstellungszeit usw. Sie können die Informationen in dieser Tabelle verwenden, um die Größe einer bestimmten Datenbank oder aller Datenbanken auf dem Server zu ermitteln.
Sie können auch die MySQL Workbench-GUI verwenden, um Details über die Datenbank (einschließlich ihrer Größe) zu finden.
Dieser Artikel bietet einen schnellen Überblick über beide Methoden.
Codebeispiel
Hier ist ein Beispiel für das Ermitteln der Größe jeder Datenbank durch Ausführen einer Abfrage für information_schema.tables
Tabelle:
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;
Ergebnis:
+--------------------+---------------+-------------+ | 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 diesem Beispiel habe ich die Größe in Byte und in Mebibyte (MiB) aufgelistet, aber Sie können wählen, wie Sie sie darstellen möchten.
Natürlich können Sie es bei Bedarf immer auf eine bestimmte Datenbank eingrenzen. Fügen Sie einfach ein WHERE
hinzu -Klausel mit dem Namen der Datenbank:
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';
Ergebnis:
+---------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +---------------+---------------+-------------+ | sakila | 6766592 | 6.45 | +---------------+---------------+-------------+
Die FORMAT_BYTES()-Funktion
Sie können sys.FORMAT_BYTES()
verwenden Funktion, um sich das Umrechnen der Größe in Mebibyte, Kibibyte oder was auch immer zu ersparen. Diese Funktion nimmt einen Wert, konvertiert ihn in ein für Menschen lesbares Format und gibt eine Zeichenfolge zurück, die aus einem Wert und einem Einheitenindikator besteht. Der konvertierte Wert hängt von der Größe des Werts ab (das Ergebnis könnte also in bytes
vorliegen , KiB
(Kibibyte), MiB
(Mebibyte), GiB
(Gibibyte), TiB
(Tebibyte) oder PiB
(Pebibyte).
Hier ist ein Beispiel für das Umschreiben des vorherigen Beispiels, um FORMAT_BYTES()
zu verwenden 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;
Ergebnis:
+--------------------+---------------+------------------+ | 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
Eine andere Möglichkeit, die Datenbankgröße zu ermitteln, ist die Verwendung der MySQL Workbench-GUI. So geht's:
- Navigieren Sie zur Datenbank in den
Schemas
Bereich - Bewegen Sie den Mauszeiger über die entsprechende Datenbank
- Klicken Sie auf das kleine Informationssymbol neben dem Datenbanknamen. Dadurch werden Informationen über die Datenbank geladen, einschließlich ihrer ungefähren Größe, Tabellenanzahl, Sortierung usw. Die Datenbankgröße wird unter
Info
aufgeführt Registerkarte (normalerweise die Standardregisterkarte).