In MySQL kunt u de grootte van alle tabellen in een bepaalde database (of van alle databases) controleren door de information_schema.tables
op te vragen. tafel. Deze tabel slaat gegevens op over elke tabel in een database, inclusief informatie over de grootte, aanmaakdatum, sortering, enz. van elke tabel.
U kunt ook de grootte van elke tabel in een database vinden met behulp van de MySQL Workbench GUI.
Dit artikel geeft een snel overzicht van elke methode.
Codevoorbeeld
Hier is een voorbeeld van een SQL-query die de grootte van de tabellen in een database retourneert.
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;
Resultaat:
+----------------------------+---------------+-------------+ | 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 | +----------------------------+---------------+-------------+
Dit retourneert de grootte van elke tabel in de sakila
databank. Vervang sakila
met de naam van de betreffende database. Natuurlijk kunt u de WHERE
. weglaten clausule helemaal, en dit zal de tabelgrootte van alle tabellen in alle databases retourneren, maar het zal een lange lijst zijn.
In dit geval heb ik de resultaten gesorteerd op tafelgrootte in aflopende volgorde. Ik heb ook een kolom toegevoegd met de grootte geconverteerd naar MiB (Mebibytes).
Een andere methode om de grootte te converteren is om de sys.FORMAT_BYTES()
te gebruiken functie.
De sys.FORMAT_BYTES() Functie
U kunt de sys.FORMAT_BYTES()
. gebruiken functie om de grootte van bytes om te zetten in ofwel bytes
, KiB
(kibibytes), MiB
(mebibytes), GiB
(gibibytes), TiB
(tebibytes), of PiB
(pebibytes), met de eenheidsindicator toegevoegd aan de waarde. De eenhedenindicator wordt automatisch toegevoegd. De functie bepaalt naar welke eenheid moet worden geconverteerd, afhankelijk van de grootte van de waarde, dus u hebt geen controle over welke eenheid u moet gebruiken.
Hier is een voorbeeld van het gebruik van deze 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;
Resultaat:
+----------------------------+---------------+------------------+ | 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-werkbank
Als u de MySQL Workbench GUI gebruikt, kunt u naar de tabelgroottes wijzen en klikken. 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.
- Klik op de
Tables
tabblad. Dit geeft informatie weer over elke tabel in de database, inclusief de gegevenslengte en indexlengte.