Obtener el tamaño de una base de datos en MongoDB

Mehvish Ashiq 2 junio 2022
Obtener el tamaño de una base de datos en MongoDB

¿Conoce el tamaño de su base de datos mientras trabaja en MongoDB? Hoy, usaremos el comando show dbs y el método db.stats() para comprender cómo obtener el tamaño de una base de datos en MongoDB.

Obtener el tamaño de una base de datos en MongoDB

Podemos usar el show dbs; comando en el shell mongo para obtener el tamaño de almacenamiento de todas las bases de datos en MongoDB de la siguiente manera.

Código de ejemplo:

> show dbs;

Producción :

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

El resultado anterior muestra el nombre de la base de datos con su tamaño en GB. Usamos el método db.stats() para obtener estadísticas detalladas sobre una base de datos.

Tiene varios campos que necesitamos entender primero. A continuación se incluye una breve explicación de cada uno de ellos, pero puede encontrar más detalles sobre cada campo aquí.

  1. db - el nombre de la base de datos actual
  2. collections - número de tablas/colecciones en la base de datos actual
  3. views - número de vistas en la base de datos actual
  4. objects - número de objetos en la base de datos actual en todas las tablas (colecciones)
  5. avgObjSize - tamaño promedio de cada documento (un registro) en bytes
  6. dataSize: tamaño total de los datos sin comprimir contenidos en la base de datos. El dataSize disminuye cuando eliminamos un documento.
  7. storageSize - es el tamaño de los datos almacenados en el sistema de archivos. El dataSize puede ser mayor que el storageSize si se utiliza la compresión.
  8. indexes: número de índices en la base de datos en todas las colecciones
  9. indexSize: la suma del espacio de índice libre y el espacio asignado a todos los índices de la base de datos
  10. totalSize: la suma del espacio asignado para índices y documentos para todas las colecciones en una base de datos. Incluye espacio de almacenamiento gratuito y usado.
  11. scaleFactor: un valor que utiliza el comando
  12. fsUsedSize y fsTotalSize: se trata del sistema de archivos donde se almacena la base de datos. Estos se utilizan para tener una idea de cuánto puede crecer una base de datos.
  13. ok - el valor 1 significa que la consulta se ejecutó con éxito

Recuerda que debemos seleccionar una base de datos antes de utilizar la función db.stats().

Código de ejemplo:

> use test
> db.stats()

Producción :

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

También podemos pasar el factor de escala según los requisitos del proyecto.

  1. No se pasa ningún factor de escala si queremos las estadísticas en bytes.
  2. Pase 1024 al método stats() para obtener estadísticas en Kilobytes (KB).
  3. Pase 1024 * 1024 a la función stats() para recuperar las estadísticas en Megabytes (MB).
  4. Pase 1024 * 1024 * 1024 al método stats() para ver las estadísticas en Gigabytes (GB).

Vea los siguientes ejemplos como una demostración.

Obtener estadísticas en bytes:

>db.stats()

Producción :

{
        "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 datos ocupa 0.1352 MB en filesystem teniendo en cuenta el storageSize dado anteriormente. Del mismo modo, podemos obtener el tamaño de una base de datos en los siguientes ejemplos.

Obtener estadísticas en KB:

> db.stats(1024)

Producción :

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

Obtener estadísticas en MB:

> db.stats(1024*1024)

Producción :

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

Obtener estadísticas en GB:

> db.stats(1024*1024*1024)

Producción :

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

Artículo relacionado - MongoDB Database