In MariaDB, possiamo interrogare information_schema.tables
tabella per verificare la dimensione di un database.
Questa tabella restituisce informazioni sulle tabelle e le viste in ogni database sul server. Possiamo raggruppare i risultati e restituire gli importi aggregati per ciascun database.
Esempio
Ecco una query che restituisce la dimensione di tutti i database sul server:
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;
Risultato:
+--------------------+---------------+-------------+ | 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 | +--------------------+---------------+-------------+
Tegli information_schema.tables
la tabella mostra le informazioni sui vari non TEMPORARY
tabelle (tranne le tabelle dallo Information Schema
database) e viste sul server.
Qui li ho raggruppati per database (table_schema
) ed eseguito alcuni calcoli sulle taglie.
Database unico
Possiamo restringerlo a un solo database con un WHERE
clausola:
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;
Risultato:
+---------------+---------------+-------------+ | Database Name | Size in Bytes | Size in MiB | +---------------+---------------+-------------+ | krankykranes | 131072 | 0.13 | +---------------+---------------+-------------+
In MySQL, possiamo usare sys.FORMAT_BYTES()
funzione per eseguire la conversione della lunghezza dei dati, ma al momento in cui scrivo MariaDB non ha ancora implementato tale funzione.