sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb 2.4 2dsphere-frågor mycket långsamma (med $geoIntersects)?

Frågan i loggen matchar inte frågan som du kör som, platsen är annorlunda:

[ 116.3426399230957, 39.95959281921387 ] kontra
[ 116.3175773620605, 39.97607231140137 ]

Jag tror inte heller att du har reproducerat hela din loggrad, eftersom den bara nämner area och inte deliver_area .

Men de är inte riktigt långsamma . I det första fallet tog det 103ms, vilket i vissa fall kan hända eftersom din server gör annan IO. Den andra frågan tog 5ms som explain() utdata berättar.

Men det som är mest slående är att ditt huvudkriterium är id: 59 . Jag vet inte vad ditt _id har fältet är, men om du ställer in ett index på id då ska detta inte ens behöva använda en 2dsphere index alls — såvida du inte har såklart många dokument där id=59 . I så fall kan du ha det bättre med en sammansatt nyckel på { id: 1, deliver_area: '2dsphere' } .




  1. installera mongodb-10gen misslyckades med apt-get

  2. Hur sparar man bara en databas i Redis?

  3. Är Redis list eller set pop metod tråd säker?

  4. Hur får man Mongoose att lista alla dokument i samlingen? För att berätta om samlingen är tom?