sql >> Base de Datos >  >> NoSQL >> MongoDB

Eliminaciones muy lentas de MongoDB

Esto está sucediendo porque aunque

db.repo.remove({"date" : {"$lt" : new Date(1362096000000)}})

parece un solo comando que en realidad está operando en muchos documentos, tantos como satisfagan esta consulta.

Cuando usa la replicación, cada operación de cambio debe escribirse en una colección especial en el local base de datos llamada oplog.rs - oplog para abreviar.

El oplog debe tener una entrada para cada documento eliminado y cada una de esas entradas debe aplicarse al oplog en cada secundario antes de que también pueda eliminar el mismo registro.

Una cosa que puedo sugerirle que considere es Índices TTL - eliminarán "automáticamente" los documentos en función de la fecha de caducidad/valor que establezca; de esta manera, no tendrá una eliminación masiva y, en cambio, podrá distribuir la carga más con el tiempo.