In MySQL können Sie die Größe aller Tabellen in einer bestimmten Datenbank (oder in allen Datenbanken) überprüfen, indem Sie die information_schema.tables
abfragen Tisch. Diese Tabelle speichert Daten zu jeder Tabelle in einer Datenbank, einschließlich Informationen über die Größe jeder Tabelle, das Erstellungsdatum, die Sortierung usw.
Sie können auch die Größe jeder Tabelle innerhalb einer Datenbank finden, indem Sie die MySQL Workbench-GUI verwenden.
Dieser Artikel bietet einen schnellen Überblick über jede Methode.
Codebeispiel
Hier ist ein Beispiel für eine SQL-Abfrage, die die Größe der Tabellen in einer Datenbank zurückgibt.
SELECT table_name 'Table Name', data_length + index_length 'Size in Bytes', ROUND(((data_length + index_length) / 1024 / 1024), 2) 'Size in MiB' FROM information_schema.tables WHERE table_schema = 'sakila' ORDER BY (data_length + index_length) DESC;
Ergebnis:
+----------------------------+---------------+-------------+ | Table Name | Size in Bytes | Size in MiB | +----------------------------+---------------+-------------+ | rental | 2785280 | 2.66 | | payment | 2228224 | 2.13 | | inventory | 376832 | 0.36 | | film | 278528 | 0.27 | | film_actor | 278528 | 0.27 | | film_text | 196608 | 0.19 | | customer | 131072 | 0.13 | | address | 114688 | 0.11 | | staff | 98304 | 0.09 | | film_category | 81920 | 0.08 | | city | 65536 | 0.06 | | store | 49152 | 0.05 | | actor | 32768 | 0.03 | | country | 16384 | 0.02 | | language | 16384 | 0.02 | | category | 16384 | 0.02 | | staff_list | 0 | 0.00 | | customer_list | 0 | 0.00 | | nicer_but_slower_film_list | 0 | 0.00 | | actor_info | 0 | 0.00 | | sales_by_film_category | 0 | 0.00 | | film_list | 0 | 0.00 | | sales_by_store | 0 | 0.00 | +----------------------------+---------------+-------------+
Dies gibt die Größe jeder Tabelle im sakila
zurück Datenbank. Ersetzen Sie sakila
mit dem Namen der entsprechenden Datenbank. Natürlich könnte man WHERE
weglassen -Klausel zusammen, und dies wird die Tabellengröße aller Tabellen in allen Datenbanken zurückgeben, aber es wird eine lange Liste sein.
In diesem Fall habe ich die Ergebnisse nach Tabellengröße in absteigender Reihenfolge sortiert. Ich habe auch eine Spalte mit der in MiB (Mebibyte) umgerechneten Größe hinzugefügt.
Eine andere Methode zum Konvertieren der Größe ist die Verwendung von sys.FORMAT_BYTES()
Funktion.
Die sys.FORMAT_BYTES()-Funktion
Sie können sys.FORMAT_BYTES()
verwenden Funktion zum Konvertieren der Größe von Bytes in entweder bytes
, KiB
(Kibibyte), MiB
(Mebibyte), GiB
(Gibibyte), TiB
(Tebibyte) oder PiB
(Pebibyte), wobei der Einheitenindikator zum Wert hinzugefügt wird. Die Einheitenanzeige wird automatisch hinzugefügt. Die Funktion entscheidet, in welche Einheit sie umgerechnet wird, abhängig von der Größe des Werts, sodass Sie keine Kontrolle darüber haben, welche Einheit verwendet werden soll.
Hier ist ein Beispiel für die Verwendung dieser Methode:
SELECT table_name 'Table Name', data_length + index_length 'Size in Bytes', sys.FORMAT_BYTES((data_length + index_length)) 'Size (Formatted)' FROM information_schema.tables WHERE table_schema = 'sakila' ORDER BY (data_length + index_length) DESC;
Ergebnis:
+----------------------------+---------------+------------------+ | Table Name | Size in Bytes | Size (Formatted) | +----------------------------+---------------+------------------+ | rental | 2785280 | 2.66 MiB | | payment | 2228224 | 2.12 MiB | | inventory | 376832 | 368.00 KiB | | film | 278528 | 272.00 KiB | | film_actor | 278528 | 272.00 KiB | | film_text | 196608 | 192.00 KiB | | customer | 131072 | 128.00 KiB | | address | 114688 | 112.00 KiB | | staff | 98304 | 96.00 KiB | | film_category | 81920 | 80.00 KiB | | city | 65536 | 64.00 KiB | | store | 49152 | 48.00 KiB | | actor | 32768 | 32.00 KiB | | category | 16384 | 16.00 KiB | | country | 16384 | 16.00 KiB | | language | 16384 | 16.00 KiB | | actor_info | 0 | 0 bytes | | customer_list | 0 | 0 bytes | | film_list | 0 | 0 bytes | | nicer_but_slower_film_list | 0 | 0 bytes | | sales_by_film_category | 0 | 0 bytes | | sales_by_store | 0 | 0 bytes | | staff_list | 0 | 0 bytes | +----------------------------+---------------+------------------+
MySQL-Workbench
Wenn Sie die MySQL Workbench-GUI verwenden, können Sie sich zu den Tabellengrößen bewegen und darauf klicken. So geht's:
- Navigieren Sie in den
Schemas
zur Datenbank 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.
- Klicken Sie auf die
Tables
Tab. Hier werden Informationen zu jeder Tabelle in der Datenbank angezeigt, einschließlich Datenlänge und Indexlänge.