sql >> Databáze >  >> NoSQL >> MongoDB

mongodb špatný výkon

MongoDB má globální zámek zápisu . To znamená, že současně může pokračovat pouze jedna z vašich aktualizací.

db.serverStatus() příkaz vám může pomoci diagnostikovat problémy s globálním zámkem zápisu.

Zde je několik věcí, které můžete vyzkoušet:

1) Ujistěte se, že používáte mongodb 2.0. Má lepší souběžnost než starší verze. 2.2 bude mít ještě lepší souběžnost.

2) Zařaďte své zápisy do fronty tak, aby byly asynchronní, a všechny je provádějte pomocí jediného vlákna. To může pomoci se souběžností, protože obecně se pouze jedno vlákno bude pokoušet použít globální zámek zápisu najednou.

3) Pokud používáte nejnovější verzi a nemůžete své zápisy vytvořit s jedním vláknem, zvažte sharding. Sharding je mnohem víc než jen velikost; je to přinejmenším stejně důležité pro souběžnost zápisu. Pokud provedete shard, pak každý segment poběží ve vlastním procesu s vlastním globálním zámkem zápisu. To umožní celému systému zpracovat více zápisů.



  1. Zkrátit sbírku

  2. Mongodb $ kde dotaz vždy platí s nodejs

  3. Redis / Node.js – 2 klienti (1 pub/sub) způsobující problémy se zápisy

  4. Jak vytvořit db (key_space) v redis