W MySQL możesz sprawdzić rozmiar wszystkich tabel w danej bazie danych (lub we wszystkich bazach danych), wysyłając zapytanie do information_schema.tables
stół. Ta tabela przechowuje dane o każdej tabeli w bazie danych, w tym informacje o rozmiarze każdej tabeli, dacie utworzenia, sortowaniu itp.
Możesz również sprawdzić rozmiar każdej tabeli w bazie danych za pomocą graficznego interfejsu użytkownika MySQL Workbench.
Ten artykuł zawiera krótki przegląd każdej metody.
Przykład kodu
Oto przykład zapytania SQL, które zwraca rozmiar tabel w bazie danych.
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;
Wynik:
+----------------------------+---------------+-------------+ | 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 | +----------------------------+---------------+-------------+
Zwraca rozmiar każdej tabeli w sakila
Baza danych. Zastąp sakila
z nazwą odpowiedniej bazy danych. Oczywiście możesz pominąć WHERE
w całości, a to zwróci rozmiar wszystkich tabel we wszystkich bazach danych, ale będzie to długa lista.
W tym przypadku wyniki uporządkowałem według rozmiaru tabeli w kolejności malejącej. Dodałem również kolumnę z rozmiarem przekonwertowanym na MiB (mebibajty).
Inną metodą konwersji rozmiaru jest użycie sys.FORMAT_BYTES()
funkcja.
Funkcja sys.FORMAT_BYTES()
Możesz użyć sys.FORMAT_BYTES()
funkcja konwertująca rozmiar z bajtów na bytes
, KiB
(kibibajty), MiB
(mebibajty), GiB
(gibibajty), TiB
(tebibajty) lub PiB
(pebibajty), ze wskaźnikiem jednostek dodanym do wartości. Wskaźnik jednostek jest dodawany automatycznie. Funkcja zdecyduje, na którą jednostkę przekonwertować, w zależności od wielkości wartości, więc nie masz żadnej kontroli nad tym, której jednostki użyć.
Oto przykład użycia tej metody:
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;
Wynik:
+----------------------------+---------------+------------------+ | 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 | +----------------------------+---------------+------------------+
Środowisko pracy MySQL
Jeśli korzystasz z GUI MySQL Workbench, możesz wskazać i kliknąć, aby wyświetlić rozmiary tabel. Oto jak:
- Przejdź do bazy danych w
Schemas
okienko - Najedź kursorem na odpowiednią bazę danych
- Kliknij małą ikonę informacji obok nazwy bazy danych. Spowoduje to wczytanie informacji o bazie danych, w tym o przybliżonym rozmiarze, liczbie tabel, sortowaniu itp.
- Kliknij
Tables
patka. Wyświetla informacje o każdej tabeli w bazie danych, w tym długość danych i długość indeksu.