Det er meget sandsynligt, at du rammer en meget almindelig flaskehals i MongoDB. Da du opdaterer dokumenter meget hyppigt ved at tilføje strenge, er der en god chance for, at du er ved at løbe tør for plads til det pågældende dokument og tvinger databasen til konstant at flytte dokumentet til et andet rum i hukommelsen\disk ved at omskrive det i slutningen af datafilen.
Tilføjelse af indekser kan kun skade skriveydelsen, så det hjælper ikke med at forbedre ydeevnen, medmindre du bliver læst tungt.
Jeg vil overveje at ændre din applikationslogik for at gøre dette:
- Indeks i søgeordsfeltet
- Før du indsætter noget i databasen, hver gang du registrerer et tweet, skal du forespørge efter dokumentet, der indeholder nøgleordet. Hvis det ikke findes, skal du indsætte et nyt dokument, men udfylde
ids
ejendom ved at tilføje en hel masse falske strenge i arrayet. Så straks efter du har indsat det, skal du fjerne alle id'er fra det array. Dette vil få mongodb til at allokere yderligere plads til hele dokumentet, så når du begynder at tilføje id'er til id-feltet, vil det have masser af plads til at vokse. - Indsæt tweet-id'et i
ids
felt