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í.
db
- el nombre de la base de datos actualcollections
- número de tablas/colecciones en la base de datos actualviews
- número de vistas en la base de datos actualobjects
- número de objetos en la base de datos actual en todas las tablas (colecciones)avgObjSize
- tamaño promedio de cada documento (un registro) en bytesdataSize
: tamaño total de los datos sin comprimir contenidos en la base de datos. EldataSize
disminuye cuando eliminamos un documento.storageSize
- es el tamaño de los datos almacenados en elsistema de archivos
. EldataSize
puede ser mayor que elstorageSize
si se utiliza la compresión.indexes
: número de índices en la base de datos en todas las coleccionesindexSize
: la suma del espacio de índice libre y el espacio asignado a todos los índices de la base de datostotalSize
: 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.scaleFactor
: un valor que utiliza el comandofsUsedSize
yfsTotalSize
: se trata delsistema 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.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.
- No se pasa ningún factor de escala si queremos las estadísticas en bytes.
- Pase
1024
al métodostats()
para obtener estadísticas en Kilobytes (KB). - Pase
1024 * 1024
a la funciónstats()
para recuperar las estadísticas en Megabytes (MB). - Pase
1024 * 1024 * 1024
al métodostats()
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
}