sql >> Database teknologi >  >> RDS >> Mysql

Sådan kontrolleres størrelsen af ​​en database i MySQL

I MySQL kan du forespørge på information_schema.tables tabel for at returnere information om tabellerne i en database. Denne tabel indeholder oplysninger om datalængden, indekslængden samt andre detaljer såsom sortering, oprettelsestid osv. Du kan bruge oplysningerne i denne tabel til at finde størrelsen på en given database eller alle databaser på serveren.

Du kan også bruge MySQL Workbench GUI til at finde detaljer om databasen (inklusive dens størrelse).

Denne artikel giver et hurtigt overblik over begge metoder.

Kodeeksempel

Her er et eksempel på at finde størrelsen af ​​hver database ved at køre en forespørgsel mod information_schema.tables tabel:

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

I dette eksempel har jeg angivet størrelsen i bytes og i mebibytes (MiB), men du kan vælge, hvordan du vil præsentere den.

Du kan selvfølgelig altid indsnævre det til en bestemt database, hvis du har brug for det. Du skal blot tilføje en WHERE klausul med navnet på databasen:

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';

Resultat:

+---------------+---------------+-------------+
| Database Name | Size in Bytes | Size in MiB |
+---------------+---------------+-------------+
| sakila        |       6766592 |        6.45 |
+---------------+---------------+-------------+

FORMAT_BYTES()-funktionen

Du kan bruge sys.FORMAT_BYTES() funktion for at spare dig selv for at konvertere størrelsen til mebibytes, kibibytes eller hvad som helst. Denne funktion tager en værdi, konverterer den til et menneskeligt læsbart format og returnerer en streng bestående af en værdi og en enhedsindikator. Den konverterede værdi vil afhænge af størrelsen af ​​værdien (så resultatet kan være i bytes , KiB (kibibytes), MiB (mebibytes), GiB (gibibytes), TiB (tebibytes) eller PiB (pebibytes).

Her er et eksempel på omskrivning af det forrige eksempel for at bruge FORMAT_BYTES() funktion:

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;

Resultat:

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

MySQL Workbench

En anden måde at finde databasestørrelsen på er at bruge MySQL Workbench GUI. Sådan gør du:

  1. Naviger til databasen i Schemas rude
  2. Hold markøren over den relevante database
  3. Klik på det lille informationsikon ved siden af ​​databasenavnet. Dette indlæser information om databasen, inklusive dens omtrentlige størrelse, tabelantal, sortering osv. Databasestørrelsen er angivet i Info fanen (normalt standardfanen).

  1. pyodbc kan ikke oprette forbindelse til databasen

  2. Sådan opretter du en MySQL-database i cPanel

  3. PolyScale.ai – Skalering af MySQL &PostgreSQL med Global Caching

  4. DBCA Opret database dårlig REMOTE_LISTENER