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:
- Index v poli klíčového slova
- 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. - Do pole
ids
vložte ID tweetu pole