I MySQL kan du kontrollera storleken på alla tabeller i en given databas (eller på alla databaser) genom att fråga information_schema.tables
tabell. Den här tabellen lagrar data om varje tabell i en databas, inklusive information om varje tabells storlek, skapelsedatum, sortering, etc.
Du kan också hitta storleken på varje tabell i en databas genom att använda MySQL Workbench GUI.
Den här artikeln ger en snabb översikt över varje metod.
Kodexempel
Här är ett exempel på en SQL-fråga som returnerar storleken på tabellerna i en databas.
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;
Resultat:
+----------------------------+---------------+-------------+ | 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 | +----------------------------+---------------+-------------+
Detta returnerar storleken på varje tabell i sakila
databas. Ersätt sakila
med namnet på den relevanta databasen. Naturligtvis kan du utelämna WHERE
sats helt och hållet, och detta kommer att returnera tabellstorleken för alla tabeller i alla databaser, men det blir en lång lista.
I det här fallet har jag beställt resultaten efter tabellstorlek i fallande ordning. Jag har också lagt till en kolumn med storleken konverterad till MiB (Mebibytes).
En annan metod för att konvertera storleken är att använda sys.FORMAT_BYTES()
funktion.
Funktionen sys.FORMAT_BYTES()
Du kan använda sys.FORMAT_BYTES()
funktion för att konvertera storleken från byte till antingen bytes
, KiB
(kibibyte), MiB
(mebibyte), GiB
(gibibyte), TiB
(tebibyte) eller PiB
(pebibytes), med enhetsindikatorn lagt till värdet. Enhetsindikatorn läggs till automatiskt. Funktionen avgör vilken enhet som ska konverteras till, beroende på storleken på värdet, så att du inte har någon kontroll över vilken enhet som ska användas.
Här är ett exempel på hur du använder den här metoden:
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;
Resultat:
+----------------------------+---------------+------------------+ | 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
Om du använder MySQL Workbench GUI kan du peka och klicka dig fram till tabellstorlekarna. Så här gör du:
- Navigera till databasen i
Schemas
rutan - Håll muspekaren över den tillämpliga databasen
- Klicka på den lilla informationsikonen bredvid databasnamnet. Detta laddar information om databasen, inklusive dess ungefärliga storlek, tabellantal, sammanställning, etc.
- Klicka på
Tables
flik. Detta visar information om varje tabell i databasen, inklusive datalängd och indexlängd.