Skip to content

Archives

  • janvier 2022
  • décembre 2021
  • novembre 2021
  • octobre 2021
  • septembre 2021

Categories

  • Aucune catégorie
Trend RepositoryArticles and guides
Articles

Comment obtenir la taille d’une table dans MySQL

On décembre 17, 2021 by admin

Comme la plupart des bases de données relationnelles, MySQL fournit des métadonnées utiles sur la base de données elle-même. Alors que la plupart des autres bases de données font référence à ces informations en tant que catalog, la documentation officielle de MySQL fait référence aux métadonnées INFORMATION_SCHEMA en tant que tables.

Qu’importe le nom, ce qui compte, ce sont les informations fournies par ces tables INFORMATION_SCHEMA. Tout, de views et user_privilieges à columns et tables, peut être trouvé dans les INFORMATION_SCHEMA. Pour nos besoins, nous sommes particulièrement intéressés par les métadonnées tables, que nous pouvons interroger pour extraire réellement la taille des diverses tables du système.

Lister les tailles des tables à partir d’une seule base de données

Comme on peut le voir dans la documentation officielle, la table INFORMATION_SCHEMA.TABLES contient environ 20 colonnes, mais pour déterminer la quantité d’espace disque utilisée par les tables, nous allons nous concentrer sur deux colonnes en particulier : DATA_LENGTH et INDEX_LENGTH.

  • DATA_LENGTH est la longueur (ou la taille) de toutes les données de la table (en bytes).
  • INDEX_LENGTH est la longueur (ou la taille) du fichier d’index de la table (également en bytes).

Munis de ces informations, nous pouvons exécuter une requête qui listera toutes les tables d’une base de données spécifique ainsi que l’espace disque (taille) de chacune. Nous pouvons même être un peu plus fantaisistes et convertir les valeurs de taille normales de bytes en quelque chose de plus utile et compréhensible pour la plupart des gens comme megabytes.

SELECT TABLE_NAME AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`FROM information_schema.TABLESWHERE TABLE_SCHEMA = "bookstore"ORDER BY (DATA_LENGTH + INDEX_LENGTH)DESC;

Dans cet exemple utilisant la base de données bookstore, nous combinons les DATA_LENGTH et INDEX_LENGTH comme bytes, puis nous les divisons par 1024 deux fois pour les convertir en kilobytes puis megabytes. Notre ensemble de résultats ressemblera à quelque chose comme ceci :

+----------------------------------+-----------+| Table | Size (MB) |+----------------------------------+-----------+| book | 267 || author | 39 || post | 27 || cache | 24 |...

Si vous ne vous souciez pas de toutes les tables de la base de données et que vous voulez seulement la taille d’une table particulière, vous pouvez simplement ajouter AND TABLE_NAME = "your_table_name" à la clause WHERE. Ici, nous voulons seulement des informations sur la table book:

SELECT TABLE_NAME AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`FROM information_schema.TABLESWHERE TABLE_SCHEMA = "bookstore" AND TABLE_NAME = "book"ORDER BY (DATA_LENGTH + INDEX_LENGTH)DESC;

Les résultats, comme prévu, sont maintenant :

+-------+-----------+| Table | Size (MB) |+-------+-----------+| book | 267 |+-------+-----------+1 row in set (0.00 sec)

Liste de toutes les tailles de table de TOUTES les bases de données

Si vous rencontrez un problème où votre base de données augmente en taille mais que vous ne savez pas quelle table est le coupable, il peut être utile de demander la taille de toutes les tables dans toutes les bases de données du système entier. Ceci peut être accompli facilement avec la requête suivante:

SELECT TABLE_SCHEMA AS `Database`, TABLE_NAME AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`FROM information_schema.TABLESORDER BY (DATA_LENGTH + INDEX_LENGTH)DESC;

Cela renverra non seulement la taille de la table, mais aussi le nom de la table et la base de données parente à laquelle elle est associée.

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archives

  • janvier 2022
  • décembre 2021
  • novembre 2021
  • octobre 2021
  • septembre 2021

Méta

  • Connexion
  • Flux des publications
  • Flux des commentaires
  • Site de WordPress-FR
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress