MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB elimina molto lentamente

Questo sta accadendo perché anche se

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

sembra un singolo comando che in realtà sta operando su molti documenti, quanti soddisfano questa query.

Quando utilizzi la replica, ogni operazione di modifica deve essere scritta in una raccolta speciale in local database chiamato oplog.rs - oplog in breve.

L'oplog deve avere una voce per ogni documento eliminato e ognuna di queste voci deve essere applicata all'oplog su ogni secondario prima che possa eliminare anche lo stesso record.

Una cosa che posso suggerirti di considerare è Indici TTL - elimineranno "automaticamente" i documenti in base alla data/valore di scadenza che hai impostato - in questo modo non avrai un'eliminazione massiccia e sarai invece in grado di distribuire il carico più nel tempo.