Ermitteln der Größe einer Datenbank in MongoDB

Mehvish Ashiq 2 Juni 2022
Ermitteln der Größe einer Datenbank in MongoDB

Kennen Sie die Größe Ihrer Datenbank, während Sie in MongoDB arbeiten? Heute werden wir den Befehl show dbs und die Methode db.stats() verwenden, um zu verstehen, wie man die Größe einer Datenbank in MongoDB erhält.

Holen Sie sich die Größe einer Datenbank in MongoDB

Wir können das show dbs; Befehl auf der Mongo-Shell, um die Speichergröße aller Datenbanken in MongoDB wie folgt abzurufen.

Beispielcode:

> show dbs;

AUSGANG:

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

Die obige Ausgabe zeigt den Datenbanknamen mit ihrer Größe in GB. Wir verwenden die Methode db.stats(), um detaillierte Statistiken über eine Datenbank zu erhalten.

Es hat verschiedene Felder, die wir zuerst verstehen müssen. Im Folgenden finden Sie eine kurze Erklärung für jeden von ihnen, aber Sie können weitere Details zu jedem Feld hier finden.

  1. db - der Name der aktuellen Datenbank
  2. collections - Anzahl der Tabellen/Sammlungen in der aktuellen Datenbank
  3. views - Anzahl der Ansichten in der aktuellen Datenbank
  4. objects - Nummer der Objekte in der aktuellen Datenbank über alle Tabellen (Sammlungen)
  5. avgObjSize - durchschnittliche Größe jedes Dokuments (eines Datensatzes) in Bytes
  6. dataSize – Gesamtgröße der unkomprimierten Daten, die in der Datenbank enthalten sind. Die dataSize verringert sich, wenn wir ein Dokument entfernen.
  7. storageSize – ist die Größe der im Dateisystem gespeicherten Daten. Die dataSize kann grösser als die storageSize sein, wenn die Komprimierung verwendet wird.
  8. Indizes – Anzahl der Indizes in der Datenbank über alle Sammlungen hinweg
  9. indexes – die Summe aus freiem Indexplatz und zugewiesenem Platz für alle Indizes in der Datenbank
  10. totalSize – die Summe des zugewiesenen Speicherplatzes für Indizes und Dokumente für alle Sammlungen in einer Datenbank. Es beinhaltet freien und genutzten Speicherplatz.
  11. scaleFactor – ein Wert, der vom Befehl verwendet wird
  12. fsUsedSize und fsTotalSize – hier geht es um das Dateisystem, in dem die Datenbank gespeichert ist. Diese werden verwendet, um eine Vorstellung davon zu bekommen, wie stark eine Datenbank wachsen kann.
  13. ok - der Wert 1 bedeutet, dass die Abfrage erfolgreich ausgeführt wurde

Denken Sie daran, dass wir eine Datenbank auswählen müssen, bevor wir die Funktion db.stats() verwenden.

Beispielcode:

> use test
> db.stats()

AUSGANG:

{
        "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
}

Wir können auch den Skalierungsfaktor gemäß den Projektanforderungen weitergeben.

  1. Es wird kein Skalierungsfaktor übergeben, wenn wir die Statistik in Bytes wollen.
  2. Übergeben Sie 1024 an die stats()-Methode, um Statistiken in Kilobyte (KB) zu erhalten.
  3. Übergeben Sie 1024 * 1024 an die Funktion stats(), um die Statistiken in Megabyte (MB) abzurufen.
  4. Übergeben Sie 1024 * 1024 * 1024 an die stats()-Methode, um die Statistiken in Gigabyte (GB) anzuzeigen.

Sehen Sie sich die folgenden Beispiele als Demonstration an.

Statistiken in Bytes abrufen:

>db.stats()

AUSGANG:

{
        "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
}

Die Datenbank nimmt unter Berücksichtigung der oben angegebenen storageSize 0.1352 MB auf filesystem ein. In ähnlicher Weise können wir in den folgenden Beispielen die Größe einer Datenbank ermitteln.

Statistiken in KB abrufen:

> db.stats(1024)

AUSGANG:

{
        "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
}

Statistiken in MB abrufen:

> db.stats(1024*1024)

AUSGANG:

{
        "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
}

Statistiken in GB abrufen:

> db.stats(1024*1024*1024)

AUSGANG:

{
        "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

Verwandter Artikel - MongoDB Database