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

Mongodb 2.4 2dsphere-forespørgsler meget langsomme (ved hjælp af $geoIntersects)?

Forespørgslen i loggen matcher ikke den forespørgsel, du kører som, placeringen er anderledes:

[ 116.3426399230957, 39.95959281921387 ] vs.
[ 116.3175773620605, 39.97607231140137 ]

Jeg tror heller ikke du har reproduceret hele din loglinje, da den blot nævner area og ikke deliver_area .

De er dog ikke rigtigt langsomme . I det første tilfælde tog det 103ms, hvilket i nogle tilfælde kan ske, da din server udfører anden IO. Den anden forespørgsel tog 5ms som explain() output fortæller dig.

Men det mest slående er, at dit hovedkriterium er id: 59 . Jeg ved ikke, hvad dit _id er felt er, men hvis du indstiller et indeks på id så skulle dette ikke engang skulle bruge en 2dsphere indeks overhovedet — medmindre du selvfølgelig har mange dokumenter hvor id=59 . I så fald kunne du være bedre stillet med en sammensat nøgle på { id: 1, deliver_area: '2dsphere' } .




  1. Mongoose gemmer dokumenter, selvom jeg tjekker, om dokumentet allerede eksisterer

  2. Mongoose - Få liste over _id'er i stedet for række af objekter med _id

  3. XML til BSON ved hjælp af C#

  4. MongoDB på EC2-server eller AWS SimpleDB?