sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb groupby langsom selv efter tilføjelse af indeks

Som du kan se af den forespørgsel, du skrev, kræver denne type aggregering i 2.0, at du kører Map/Reduce. Map/Reduce på MongoDB har nogle præstationsstraffe, som er blevet dækket på SO før - Medmindre du er i stand til at parallelisere på tværs af en klynge, kommer du til at køre enkelttrådet javascript via Spidermonkey - ikke et hurtigt forslag. Indekset, da du ikke er selektiv, hjælper ikke rigtigt - du skal bare scanne hele indekset såvel som potentielt dokumentet.

Med den nært forestående udgivelse af 2.2 (i øjeblikket i rc1, da du skriver dette) har du dog nogle muligheder. aggregeringsramme (som er native, ikke JS-baseret Map/Reduce) introduceret i 2.2 har en indbygget gruppeoperatør og blev oprettet specifikt for at fremskynde denne form for operation i MongoDB.

Jeg vil anbefale at give 2,2 en chance og se, om din præstation på gruppering forbedres. Jeg tror, ​​det ville se sådan ud (bemærk:ikke testet):

db.alarm.aggregate(
    { $group : {
        _id : "$serverName",
        count : { $sum : 1 }
    }}
);


  1. MongoDB PHP Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException:Ingen passende servere fundet

  2. MongoDB fejlfinding på Windows (C#) (Hvad skal man gøre?)

  3. TypeError:Object.keys kaldet på ikke-objekt ved opdatering af dokument

  4. Sådan sletter du dokumenter returneret af en aggregeringsforespørgsel i mongodb