W MariaDB możemy wysłać zapytanie do information_schema.tables
tabela, aby sprawdzić rozmiar bazy danych.
Ta tabela zwraca informacje o tabelach i widokach w każdej bazie danych na serwerze. Możemy pogrupować wyniki i zwrócić sumaryczne kwoty dla każdej bazy danych.
Przykład
Oto zapytanie, które zwraca rozmiar wszystkich baz danych na serwerze:
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 | 212992 | 0.20 | | KrankyKranes | 131072 | 0.13 | | Music | 81920 | 0.08 | | MyDB | 32768 | 0.03 | | mysql | 4972544 | 4.74 | | performance_schema | 0 | 0.00 | | PetHouse | 81920 | 0.08 | | Zap | 37460 | 0.04 | +--------------------+---------------+-------------+
Ton information_schema.tables
tabela pokazuje informacje o różnych nie-TEMPORARY
tabele (oprócz tabel z Information Schema
bazy danych) i widoków na serwerze.
Tutaj pogrupowałem je według bazy danych (table_schema
) i przeprowadziłem kilka obliczeń dotyczących rozmiarów.
Pojedyncza baza danych
Możemy zawęzić to do jednej bazy danych z WHERE
klauzula:
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 = 'KrankyKranes'
GROUP BY table_schema;
Wynik:
+---------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +---------------+---------------+-------------+ | krankykranes | 131072 | 0.13 | +---------------+---------------+-------------+
W MySQL możemy użyć sys.FORMAT_BYTES()
funkcji do konwersji długości danych, ale w chwili pisania tego tekstu MariaDB nie zaimplementowała jeszcze takiej funkcji.