En MongoDB, al igual que ocurre con otros gestores de base de datos, trabajan con ficheros de datos. Comúnmente cuando eliminamos documentos o colecciones, el espacio ocupado por este fichero sigue siendo el mismo, esto es debido a que puede ser usado en el futuro. Hoy vamos a ver como liberar dicho espacio. Lo primero de todo sera levantar mongo como un servicio indicando la ruta en la que se crear la base de datos, el puerto por el que escuchara y el fichero de log.
mongod --dbpath /data/ --port 27017 --logpath /data/log/hispabigdata.log &
Ahora abrimos una consola de mongo y vamos a crear una base de datos y una colección con 100.000 de documentos, recordad que el siguiente proceso puede tardar bastante, dependiendo del ordenador en el que lo ejecuteis.
use LiberandoDB;
for (var i=0; i < 100000; i++){
db.ejemploEliminacion.insert ({ "_id":i, "nombre":"HispaBigdata"+i, "fecha": ISODate() });
}
Se ejecutamos el siguiente comando podemos ver la ocupación de las bases de datos que tenemos en mongo.
show dbs;
Ahora vamos a proceder a eliminar nuestra colección, para ello ejecutamos el siguiente comando:
db.ejemploEliminacion.drop()
Una vez eliminada si buscamos algún documento nos aparecerá que no hay y si volvemos a ejecutar el comando show dbs veremos que la base de datos sigue ocupando el mismo espacio:
 
image
 
 
¿Cómo podemos liberar dicho espacio? Para ello debemos ejecutar el comando db.repairDatabase(), el cual hara una compactación de nuestra base de datos y/o recuperará nuestro espacio en disco. Si ejecutamos el comando show dbs de nuevo veremos como ya no tenemos la base de datos LiberandoDB y queda el espacio liberado.
image
 
 
Como veis el proceso es similar al que podemos utilizar en MYSQL con las tablas MyISAM usando OPTIMIZE TABLE.

Compártelo:

FacebookTwitterDiggGoogle BookmarksLinkedIn

Daniel Romero Sanchez
Author: Daniel Romero Sanchez
Responsable de sistemas y Arquitecto Cloud - vExpert 2015/16 - VCP550-DCV - LPIC-1


Escribir un comentario

Código de seguridad
Refescar

DBigCloud en tu idioma

esenfrdeitptru

Gold Sponsor

 

vExpert 2017

DbigCloud newsletter

Suscribete a nuestra newsletter y recibe cada semana los mejores artículos seleccionados por DBigCLoud.
Email type
Please wait