Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So überprüfen Sie die Größe aller Tabellen in einer Datenbank in MySQL

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:

  1. Navigieren Sie in den Schemas zur Datenbank Bereich
  2. Bewegen Sie den Mauszeiger über die entsprechende Datenbank
  3. 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.
  4. Klicken Sie auf die Tables Tab. Hier werden Informationen zu jeder Tabelle in der Datenbank angezeigt, einschließlich Datenlänge und Indexlänge.