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

Få størrelsen på en database i MariaDB

I MariaDB kan vi forespørge information_schema.tables tabel for at kontrollere størrelsen af ​​en database.

Denne tabel returnerer oplysninger om tabellerne og visningerne i hver database på serveren. Vi kan gruppere resultaterne og returnere de samlede beløb for hver database.

Eksempel

Her er en forespørgsel, der returnerer størrelsen af ​​alle databaser på serveren:

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;

Resultat:

+--------------------+---------------+-------------+
| 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 |
+--------------------+---------------+-------------+

The information_schema.tables tabel viser information om de forskellige ikke-TEMPORARY tabeller (undtagen tabeller fra Information Schema database) og visninger på serveren.

Her grupperede jeg dem efter database (table_schema ) og kørte nogle beregninger på størrelserne.

Enkelt database

Vi kan indsnævre det til kun én database med en WHERE klausul:

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;

Resultat:

+---------------+---------------+-------------+
| Database Name | Size in Bytes | Size in MiB |
+---------------+---------------+-------------+
| krankykranes  |        131072 |        0.13 |
+---------------+---------------+-------------+

I MySQL kan vi bruge sys.FORMAT_BYTES() funktion til at udføre datalængdekonverteringen, men da dette skrives, har MariaDB endnu ikke implementeret en sådan funktion.


  1. Planlægning af diskplads til databaser

  2. Kan ikke trække offset-naive og offset-bevidste datotider

  3. Er der et Oracle svarende til SQL Servers OUTPUT INSERTED.*?

  4. Top almindelige MySQL-forespørgsler