Ich verwende mongodb 2.6
, und ich habe die folgende Abfrage:mongodb mit weniger performant Index
db.getCollection('Jobs').find(
{ $and: [ { RunID: { $regex: ".*_0" } },
{ $or: [ { JobType: "TypeX" },
{ JobType: "TypeY" },
{ JobType: "TypeZ" },
{ $and: [ { Info: { $regex: "Weekly.*" } }, { JobType: "YetAnotherType" } ] } ] } ] })
Ich habe drei verschiedene Indizes: RunID
, RunID + JobType
, RunID + JobType + Info
. Mongo verwendet immer den Index, der nur RunID enthält, obwohl die anderen Indizes mit höherer Wahrscheinlichkeit schnellere Ergebnisse liefern, manchmal sogar einen Index, der aus RunID + StartTime
besteht, während StartTime nicht einmal in der Liste der verwendeten Felder ist dieser Index?
Beachten Sie, dass die Indexnutzung zwischen 2,6 und 3,2 in Bezug auf $ oder anders ist – Sammaye