MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongodb 2.4 zapytania 2dsphere są bardzo wolne (przy użyciu $geoIntersects)?

Zapytanie w dzienniku nie jest zgodne z zapytaniem, które uruchomiłeś, lokalizacja jest inna:

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

Nie sądzę też, że odtworzyłeś całą linię dziennika, ponieważ po prostu wspomina o area a nie deliver_area .

Jednak nie są naprawdę wolne . W pierwszym przypadku zajęło to 103 ms, co w niektórych przypadkach może się zdarzyć, gdy serwer wykonuje inne operacje IO. Drugie zapytanie zajęło 5 ms jako explain() wyjście mówi ci.

Ale najbardziej uderzające jest to, że głównym kryterium jest id: 59 . Nie wiem, jaki jest Twój _id pole jest, ale jeśli ustawisz indeks na id wtedy nie powinno to nawet wymagać użycia 2dsphere indeks w ogóle — chyba że masz wiele dokumentów, w których id=59 . W takim przypadku lepiej byłoby użyć klucza złożonego na { id: 1, deliver_area: '2dsphere' } .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sterownik C# Mongo IMongoDatabase RunCommand, aby uzyskać statystyki bazy danych

  2. wiosna mvc reszta odpowiedzi json i xml

  3. Używanie $graphLookup do przechodzenia przez zagnieżdżoną strukturę danych w MongoDB

  4. Dlaczego w EC2 potrzebuję pojedynczych tomów EBS dla dziennika, dziennika i danych?

  5. MongoDB Zastąp określone wartości tablicy