MariaDB
 sql >> Database >  >> RDS >> MariaDB

Ottieni la dimensione di un database in MariaDB

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.