collection - mongodb stats
base de datos dataSize en mongodb (4)
El comando dbStats devuelve diferentes estadísticas de almacenamiento para una base de datos determinada. Como se explica en esta publicación sobre las diferentes métricas de rendimiento de MongoDB que debe monitorear (con MMAPv1), la métrica de dataSize
que mencionó mide el espacio que dataSize
todos los documentos y el relleno en la base de datos. Para obtener la "huella de almacenamiento" de su base de datos en el disco, debe mirar las métricas de fileSize
que corresponden al tamaño de sus archivos de datos. Solo disminuye si elimina una base de datos y no se ve afectado cuando se eliminan colecciones, documentos o índices.
Aquí hay un diagrama con las diferentes métricas de almacenamiento importantes devueltas por dbStats:
También tenga en cuenta que, con el motor de almacenamiento MMAPv1, la memoria asignada (métrica mem.mapped
), correspondiente a la cantidad de memoria virtual utilizada para asignar la base de datos a la memoria, le brinda una buena aproximación del tamaño total de su base de datos. . Puede acceder a esta métrica con el comando serverStatus .
Con el siguiente comando, puedo obtener el tamaño de los datos de una colección específica:
db.collection.dataSize()
¿Cómo obtengo el tamaño de una base de datos?
Use el siguiente comando en mongoshell:
db.stats()
La salida debería ser así:
{
"collections" : 3,
"objects" : 80614,
"dataSize" : 21069700,
"storageSize" : 39845376,
"numExtents" : 9,
"indexes" : 2,
"indexSize" : 6012928,
"ok" : 1
}
Ver más comando de diagnóstico here .
Utilice db.getStats () en Java
CommandResult re = db.getStats();
for(String k: re.keySet()){
System.out.println(k+"="+re.get(k) );
}
Entonces obtendremos un resultado como el siguiente:
serverUsed=127.0.0.1:27017
db=test
collections=3
objects=100004
avgObjSize=67.99876004959802
dataSize=6800148
storageSize=10633216
numExtents=9
indexes=1
indexSize=4406864
fileSize=50331648
nsSizeMB=16
ok=1.0
En MongoDB:
db.stats() //For db status
db.<collectionname>.stats() //For collection status
En Python:
connection = pymongo.Connection(host = "127.0.0.1", port = 27017)
db = connection["test_db"]
test_collection = db["test_collection"]
db.command("dbstats") # prints database stats for "test_db"
db.command("collstats", "test_collection") # prints collection-level stats for "test_collection" under "test_db".
En PHP:
$con= new Mongo()
$stats=$con->dbName->command(array(''dbStats'' => 1)); // for db.stats()
$stats=$con->dbName->command(array(''collStats'' => ''collection_name'')); // for db.collection_name.stats()