sql >> Database >  >> NoSQL >> MongoDB

mongodb slechte prestatie

MongoDB heeft een algemeen schrijfslot . Dit betekent dat slechts één van uw updates tegelijk kan doorgaan.

De db.serverStatus() commando kan u helpen bij het diagnosticeren van problemen met de algemene schrijfvergrendeling.

Hier zijn enkele dingen die u kunt proberen:

1) Zorg ervoor dat u mongodb 2.0 gebruikt. Het heeft een betere gelijktijdigheid dan oudere versies. 2.2 zal nog betere gelijktijdigheid hebben.

2) Zet ​​uw schrijfbewerkingen in de wachtrij zodat ze asynchroon zijn en voer ze allemaal uit met een enkele thread. Dit kan helpen bij gelijktijdigheid, omdat over het algemeen slechts één thread tegelijk probeert de algemene schrijfvergrendeling te gebruiken.

3) Als u de nieuwste versie gebruikt en u uw schrijfbewerkingen niet single-threaded kunt maken, overweeg dan om te sharden. Sharding is voor veel meer dan alleen grootte; het is minstens zo belangrijk voor schrijfconcurrency. Als u shard, wordt elk segment in zijn eigen proces uitgevoerd met zijn eigen algemene schrijfvergrendeling. Hierdoor kan het hele systeem meer schrijfacties verwerken.



  1. MongoDb C#-stuurprogramma, eigenschap van type dat IList implementeert, wordt niet opgeslagen

  2. Hoe alle ingesloten documentwaarde op te halen met behulp van het officiële C#-stuurprogramma voor MongoDB?

  3. kon geen verbinding maken met server 127.0.0.1 shell/mongo.js

  4. C# MongoDB - Hoe kan ik een item toevoegen aan en verwijderen uit meerdere geneste array-elementen?