W MySQL możesz wysłać zapytanie do information_schema.tables
table, aby zwrócić informacje o tabelach w bazie danych. Ta tabela zawiera informacje o długości danych, długości indeksu, a także inne szczegóły, takie jak sortowanie, czas utworzenia itp. Możesz użyć informacji z tej tabeli, aby znaleźć rozmiar danej bazy danych lub wszystkich baz danych na serwerze.
Możesz także użyć GUI MySQL Workbench, aby znaleźć szczegółowe informacje o bazie danych (w tym o jej rozmiarze).
Ten artykuł zawiera krótki przegląd obu metod.
Przykład kodu
Oto przykład znajdowania rozmiaru każdej bazy danych przez uruchomienie zapytania względem information_schema.tables
tabela:
SELECT table_schema 'Database Name', SUM(data_length + index_length) 'Size in Bytes', ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) 'Size in MiB' FROM information_schema.tables GROUP BY table_schema;
Wynik:
+--------------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +--------------------+---------------+-------------+ | information_schema | 0 | 0.00 | | Music | 98304 | 0.09 | | mysql | 2506752 | 2.39 | | performance_schema | 0 | 0.00 | | sakila | 6766592 | 6.45 | | Solutions | 16384 | 0.02 | | sys | 16384 | 0.02 | | world | 802816 | 0.77 | +--------------------+---------------+-------------+
W tym przykładzie wymieniłem rozmiar w bajtach i mebibajtach (MiB), ale możesz wybrać, jak chcesz go zaprezentować.
Oczywiście zawsze możesz zawęzić go do konkretnej bazy danych, jeśli zajdzie taka potrzeba. Po prostu dodaj WHERE
klauzula z nazwą bazy danych:
SELECT table_schema 'Database Name', SUM(data_length + index_length) 'Size in Bytes', ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) 'Size in MiB' FROM information_schema.tables WHERE table_schema = 'sakila';
Wynik:
+---------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +---------------+---------------+-------------+ | sakila | 6766592 | 6.45 | +---------------+---------------+-------------+
Funkcja FORMAT_BYTES()
Możesz użyć sys.FORMAT_BYTES()
funkcja, aby zaoszczędzić sobie konwersji rozmiaru na mebibajty, kibibajty lub cokolwiek innego. Ta funkcja pobiera wartość, konwertuje ją na format czytelny dla człowieka i zwraca ciąg składający się z wartości i wskaźnika jednostek. Przekonwertowana wartość będzie zależeć od rozmiaru wartości (więc wynik może być w bytes
, KiB
(kibibajty), MiB
(mebibajty), GiB
(gibibajty), TiB
(tebibajty) lub PiB
(pebibajty).
Oto przykład przepisania poprzedniego przykładu, aby użyć FORMAT_BYTES()
funkcja:
USE Music; SELECT table_schema 'Database Name', SUM(data_length + index_length) 'Size in Bytes', sys.FORMAT_BYTES(SUM(data_length + index_length)) 'Size (Formatted)' FROM information_schema.tables GROUP BY table_schema;
Wynik:
+--------------------+---------------+------------------+ | Database Name | Size in Bytes | Size (Formatted) | +--------------------+---------------+------------------+ | information_schema | 0 | 0 bytes | | Music | 98304 | 96.00 KiB | | mysql | 2506752 | 2.39 MiB | | performance_schema | 0 | 0 bytes | | sakila | 6766592 | 6.45 MiB | | Solutions | 16384 | 16.00 KiB | | sys | 16384 | 16.00 KiB | | world | 802816 | 784.00 KiB | +--------------------+---------------+------------------+
Środowisko pracy MySQL
Innym sposobem na znalezienie rozmiaru bazy danych jest użycie GUI MySQL Workbench. Oto jak:
- Przejdź do bazy danych w
Schemas
okienko - Najedź kursorem na odpowiednią bazę danych
- Kliknij małą ikonę informacji obok nazwy bazy danych. To ładuje informacje o bazie danych, w tym jej przybliżony rozmiar, liczbę tabel, sortowanie itp. Rozmiar bazy danych jest podany w
Info
zakładka (zwykle domyślna).