154 votes

Comment obtenir la taille réelle d'une base de données MySQL ?

Je voudrais savoir combien d'espace utilise ma base de données MySQL, afin de choisir un hébergeur. J'ai trouvé la commande SHOW TABLE STATUS LIKE 'table_name' donc quand je fais la requête, j'obtiens quelque chose comme ça :

Name       | Rows | Avg. Row Length | Data_Length | Index Length
----------   ----   ---------------   -----------   ------------
table_name   400          55            362000        66560
  • les chiffres sont arrondis.

Moi aussi, j'ai 362000 ou 400*362000 = 144800000 octets de données pour ce tableau ? Et que signifie Longueur de l'index ? Merci !

301voto

ron_dobley Points 331

De S. Prakash, trouvé à la Forum MySQL :

SELECT table_schema "database name",
    sum( data_length + index_length ) / 1024 / 1024 "database size in MB",
    sum( data_free )/ 1024 / 1024 "free space in MB"
FROM information_schema.TABLES
GROUP BY table_schema; 

Ou sur une seule ligne pour faciliter le copier-coller :

SELECT table_schema "database name", sum( data_length + index_length ) / 1024 / 1024 "database size in MB", sum( data_free )/ 1024 / 1024 "free space in MB" FROM information_schema.TABLES GROUP BY table_schema;

97voto

minhas23 Points 365

Vous pouvez obtenir la taille de votre base de données Mysql en exécutant la commande suivante dans le client Mysql

SELECT  sum(round(((data_length + index_length) / 1024 / 1024 / 1024), 2))  as "Size in GB"
FROM information_schema.TABLES
WHERE table_schema = "<database_name>"

33voto

Radu Murzea Points 4716

Si vous utilisez phpMyAdmin, il peut vous fournir ces informations.

Il suffit d'aller dans "Bases de données" (menu en haut) et de cliquer sur "Activer les statistiques".

Vous verrez quelque chose comme ceci :

phpMyAdmin screenshot

Cette méthode perdra probablement en précision au fur et à mesure que les tailles augmentent, mais elle devrait être suffisamment précise pour vos besoins.

11voto

jakson Points 205

Si vous voulez le trouver dans MB, faites ceci

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;

4voto

MiGro Points 636

En fait, il y a deux façons de procéder : interroger la BD (longueur des données + longueur de l'index) ou vérifier la taille des fichiers. La longueur de l'index est liée aux données stockées dans les index.

Tout est décrit ici :

http://www.mkyong.com/mysql/how-to-calculate-the-mysql-database-size/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X