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. EldataSizedisminuye cuando eliminamos un documento.storageSize- es el tamaño de los datos almacenados en elsistema de archivos. EldataSizepuede ser mayor que elstorageSizesi 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 comandofsUsedSizeyfsTotalSize: se trata delsistema de archivosdonde 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
1024al métodostats()para obtener estadísticas en Kilobytes (KB). - Pase
1024 * 1024a la funciónstats()para recuperar las estadísticas en Megabytes (MB). - Pase
1024 * 1024 * 1024al 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
}
