Obtenir la taille d'une base de données dans MongoDB

Mehvish Ashiq 2 juin 2022
Obtenir la taille d'une base de données dans MongoDB

Connaissez-vous la taille de votre base de données lorsque vous travaillez dans MongoDB ? Aujourd’hui, nous allons utiliser la commande show dbs et la méthode db.stats() pour comprendre comment obtenir la taille d’une base de données dans MongoDB.

Obtenir la taille d’une base de données dans MongoDB

Nous pouvons utiliser le show dbs; commande sur le shell mongo pour obtenir la taille de stockage de toutes les bases de données dans MongoDB comme suit.

Exemple de code :

> show dbs;

PRODUCTION:

admin   0.000GB
config  0.000GB
local   0.000GB
test    0.001GB

La sortie ci-dessus affiche le nom de la base de données avec sa taille en Go. Nous utilisons la méthode db.stats() pour obtenir des statistiques détaillées sur une base de données.

Il a divers domaines que nous devons d’abord comprendre. Vous trouverez ci-dessous une brève explication pour chacun d’eux, mais vous pouvez trouver plus de détails sur chaque champ ici.

  1. db - le nom de la base de données actuelle
  2. collections - nombre de tables/collections dans la base de données actuelle
  3. views - nombre de vues dans la base de données actuelle
  4. objects - nombre d’objets dans la base de données actuelle dans toutes les tables (collections)
  5. avgObjSize - taille moyenne de chaque document (un enregistrement) en octets
  6. dataSize - taille totale des données non compressées contenues par la base de données. Le dataSize diminue lorsque nous supprimons un document.
  7. storageSize - est la taille des données stockées sur le système de fichiers. Le dataSize peut être plus grand que le storageSize si la compression est utilisée.
  8. indexes - nombre d’index dans la base de données dans toutes les collections
  9. indexSize - la somme de l’espace d’index libre et de l’espace alloué à tous les index de la base de données
  10. totalSize - la somme de l’espace alloué aux index et aux documents pour toutes les collections d’une base de données. Il comprend un espace de stockage gratuit et utilisé.
  11. scaleFactor - une valeur utilisée par la commande
  12. fsUsedSize et fsTotalSize - ils concernent tous le système de fichiers où la base de données est stockée. Ceux-ci sont utilisés pour avoir une idée de la capacité de croissance d’une base de données.
  13. ok - la valeur 1 signifie que la requête est exécutée avec succès

N’oubliez pas qu’il faut sélectionner une base de données avant d’utiliser la fonction db.stats().

Exemple de code :

> use test
> db.stats()

PRODUCTION:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 1485,
        "storageSize" : 135168,
        "indexes" : 5,
        "indexSize" : 102400,
        "totalSize" : 237568,
        "scaleFactor" : 1,
        "fsUsedSize" : 176960913408,
        "fsTotalSize" : 208499617792,
        "ok" : 1
}

Nous pouvons également passer le facteur d’échelle en fonction des exigences du projet.

  1. Aucun facteur d’échelle n’est passé si nous voulons les statistiques en octets.
  2. Passez 1024 à la méthode stats() pour obtenir des statistiques en kilo-octets (Ko).
  3. Passez 1024 * 1024 à la fonction stats() pour récupérer les statistiques en Mégaoctets (Mo).
  4. Passez 1024 * 1024 * 1024 à la méthode stats() pour voir les statistiques en Gigaoctets (Go).

Voir les exemples suivants à titre de démonstration.

Obtenir des statistiques en octets :

>db.stats()

PRODUCTION:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 1485,
        "storageSize" : 135168,
        "indexes" : 5,
        "indexSize" : 102400,
        "totalSize" : 237568,
        "scaleFactor" : 1,
        "fsUsedSize" : 176986320896,
        "fsTotalSize" : 208499617792,
        "ok" : 1
}

La base de données occupe 0,1352 Mo sur filesystem compte tenu de la storageSize donnée ci-dessus. De même, nous pouvons obtenir la taille d’une base de données dans les exemples suivants.

Obtenir des statistiques en Ko :

> db.stats(1024)

PRODUCTION:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 1.4501953125,
        "storageSize" : 132,
        "indexes" : 5,
        "indexSize" : 100,
        "totalSize" : 232,
        "scaleFactor" : 1024,
        "fsUsedSize" : 172839080,
        "fsTotalSize" : 203612908,
        "ok" : 1
}

Obtenir des statistiques en Mo :

> db.stats(1024*1024)

PRODUCTION:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 0.0014162063598632812,
        "storageSize" : 0.12890625,
        "indexes" : 5,
        "indexSize" : 0.09765625,
        "totalSize" : 0.2265625,
        "scaleFactor" : 1048576,
        "fsUsedSize" : 168788.66796875,
        "fsTotalSize" : 198840.73046875,
        "ok" : 1
}

Obtenir des statistiques en Go :

> db.stats(1024*1024*1024)

PRODUCTION:

{
        "db" : "test",
        "collections" : 5,
        "views" : 0,
        "objects" : 15,
        "avgObjSize" : 99,
        "dataSize" : 0.0000013830140233039856,
        "storageSize" : 0.000125885009765625,
        "indexes" : 5,
        "indexSize" : 0.000095367431640625,
        "totalSize" : 0.00022125244140625,
        "scaleFactor" : 1073741824,
        "fsUsedSize" : 164.83288955688477,
        "fsTotalSize" : 194.18040084838867,
        "ok" : 1
}
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook