sql >> Database >  >> NoSQL >> MongoDB

Slechte prestaties van opzoekaggregatie

van https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/

ForeignField Specificeert het veld van de documenten in de fromcollection. $lookup voert een gelijkheidsmatch uit op het ForeignField tothe localField uit de invoerdocumenten. Als een document in de fromcollection het ForeignField niet bevat, behandelt $lookup de waarde als nul voor vergelijkingsdoeleinden.

Dit wordt op dezelfde manier uitgevoerd als elke andere zoekopdracht.

Als je geen index hebt in het veld _AccountId, zal het een volledige tabelscanquery uitvoeren voor elk van de 10.000 berichten. Het grootste deel van de tijd zal in die tablescan worden doorgebracht.

db.users.ensureIndex("_AccountId", 1) 

versnelt het proces, zodat het 10.000 indexhits doet in plaats van 10.000 tabelscans.



  1. Hoogwaardige MongoDB-clusters op Azure

  2. redis cluster reshard [ERR] Aanroepen van MIGRATE:ERR Syntaxisfout

  3. Aan de slag met databaseautomatisering

  4. Verschil tussen Redis AOF en Tarantool WAL log