web-dev-qa-db-fra.com

Comment obtenir la taille de la base de données mysql?

Comment obtenir la taille d'une base de données mysql?
Supposons que la base de données cible s'appelle "v3".

475
Newbie

Exécutez cette requête et vous obtiendrez probablement ce que vous cherchez:

SELECT table_schema "DB Name",
        ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" 
FROM information_schema.tables 
GROUP BY table_schema; 

Cette requête provient de les forums mysql , où des instructions plus complètes sont disponibles.

1059
Brian Willis

Il peut être déterminé en utilisant la commande MySQL suivante

SELECT table_schema AS "Database", SUM(data_length + index_length) / 1024 / 1024 AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema

Résultat

Database    Size (MB)
db1         11.75678253
db2         9.53125000
test        50.78547382

Obtenir le résultat en Go

SELECT table_schema AS "Database", SUM(data_length + index_length) / 1024 / 1024 / 1024 AS "Size (GB)" FROM information_schema.TABLES GROUP BY table_schema
52
Nadeem0035

Si vous utilisez phpMyAdmin, vous pouvez également consulter la somme des tailles de table dans le pied de page de votre base de données structure. La taille réelle de la base de données peut légèrement dépasser cette taille, mais elle semble être compatible avec la méthode table_schema mentionnée ci-dessus.

Capture d'écran:

enter image description here

28
Joel

Vous pouvez également accéder directement au répertoire de données et vérifier la taille combinée de v3.myd, v3. myi et v3. fichiers frm (pour myisam) ou v3.idb & v3.frm (pour innodb).

26
kedar

Pour obtenir un résultat en Mo:

SELECT
SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2)) AS "SIZE IN MB"
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = "SCHEMA-NAME";

Pour obtenir un résultat en Go:

SELECT
SUM(ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024), 2)) AS "SIZE IN GB"
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = "SCHEMA-NAME";
13
williambarau
mysqldiskusage  --server=root:MyPassword@localhost  pics

+----------+----------------+
| db_name  |         total  |
+----------+----------------+
| pics     | 1,179,131,029  |
+----------+----------------+

S'il n'est pas installé, cela peut être installé en installant le paquetage mysql-utils qui devrait être empaqueté par la plupart des distributions majeures.

8
Rick James

Allez dans le répertoire de données mysql et lancez du -h --max-depth = 1 | Nom de la base de données grep

2
Evan Haston