sql >> Database >  >> RDS >> Mysql

De grootte van een database controleren in MySQL

In MySQL kunt u de information_schema.tables . opvragen table om informatie over de tabellen in een database te retourneren. Deze tabel bevat informatie over de gegevenslengte, indexlengte, evenals andere details zoals sortering, aanmaaktijd, enz. U kunt de informatie in deze tabel gebruiken om de grootte van een bepaalde database of alle databases op de server te vinden.

U kunt ook de MySQL Workbench GUI gebruiken om details over de database te vinden (inclusief de grootte).

Dit artikel geeft een kort overzicht van beide methoden.

Codevoorbeeld

Hier is een voorbeeld van het vinden van de grootte van elke database door een query uit te voeren op de information_schema.tables tafel:

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;

Resultaat:

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

In dit voorbeeld heb ik de grootte weergegeven in bytes en in mebibytes (MiB), maar je kunt kiezen hoe je het wilt presenteren.

Natuurlijk kunt u het altijd beperken tot een specifieke database als dat nodig is. Voeg eenvoudig een WHERE . toe clausule met de naam van de database:

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

Resultaat:

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

De FORMAT_BYTES() Functie

U kunt de sys.FORMAT_BYTES() . gebruiken functie om uzelf te besparen door de grootte om te zetten in mebibytes, kibibytes of wat dan ook. Deze functie neemt een waarde, converteert deze naar een door mensen leesbaar formaat en retourneert een tekenreeks die bestaat uit een waarde en een eenheidsindicator. De geconverteerde waarde is afhankelijk van de grootte van de waarde (dus het resultaat kan in bytes zijn , KiB (kibibytes), MiB (mebibytes), GiB (gibibytes), TiB (tebibytes), of PiB (pebibytes).

Hier is een voorbeeld van het herschrijven van het vorige voorbeeld om de FORMAT_BYTES() te gebruiken functie:

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;

Resultaat:

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

Een andere manier om de databasegrootte te vinden, is door de MySQL Workbench GUI te gebruiken. Hier is hoe:

  1. Navigeer naar de database in de Schemas deelvenster
  2. Beweeg over de betreffende database
  3. Klik op het kleine informatiepictogram naast de databasenaam. Dit laadt informatie over de database, inclusief de geschatte grootte, het aantal tabellen, sortering, enz. De databasegrootte wordt vermeld op de Info tabblad (meestal het standaardtabblad).

  1. Fatale fout:aanroep van een lidfunctie bind_param() op boolean

  2. hasMany heeft gebeld met iets dat geen instantie is van Sequelize.Model

  3. Hoe een verklaring voorbereiden voor een updatequery?

  4. Replicatieoplossingen van Oracle en MySQL vergelijken