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

Jak zlepšit výkon update() a save() v MongoDB?

Je velmi pravděpodobné, že v MongoDB narazíte na velmi běžné hrdlo láhve. Vzhledem k tomu, že dokumenty aktualizujete velmi často přidáváním řetězců, je velká šance, že vám dochází místo pro daný dokument a nutíte databázi neustále přesouvat tento dokument na jiné místo v paměti\disku jeho přepisováním na konci datového souboru.

Přidání indexů může pouze zhoršit výkon zápisu, takže nepomůže zlepšit výkon, pokud nebudete příliš číst.

Zvážil bych změnu vaší aplikační logiky takto:

  1. Index v poli klíčového slova
  2. Před vložením čehokoli do databáze pokaždé, když zjistíte tweet, vyhledejte dokument, který obsahuje klíčové slovo. Pokud neexistuje, vložte nový dokument, ale vložte ids vlastnost přidáním celé hromady falešných řetězců do pole. Poté ihned po vložení odstraňte všechna id z tohoto pole. To způsobí, že mongodb alokuje další místo pro celý tento dokument, takže když začnete přidávat ID do pole ids, bude mít dostatek prostoru pro růst.
  3. Do pole ids vložte ID tweetu pole


  1. Mongo aktualizuje všechny záznamy polem, které je prázdné

  2. mongodb:extrahujte časové razítko z ObjectID v dotazu json

  3. Poslouchejte události opětovného připojení v ovladači MongoDB

  4. Jaké jsou výhody a nevýhody DynamoDB s ohledem na jiné databáze NoSQL?