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

Proste zapytanie prefiksowe Mongodb z wyrażeniem regularnym i sortowaniem jest wolne

scanAndOrder: true w danych wyjściowych wyjaśniania wskazuje, że zapytanie musi pobrać dokumenty, a następnie posortować je w pamięci przed zwróceniem danych wyjściowych. Jest to kosztowna operacja i będzie miała wpływ na wydajność zapytania.

Istnienie scanAndOrder: true jak również różnica w nscanned n w danych wyjściowych wyjaśniania wskazuje, że zapytanie nie używa optymalnego indeksu. W tym przypadku wydaje się, że trzeba wykonać skanowanie kolekcji. Możesz być w stanie złagodzić ten problem, dołączając klucze indeksu do swojego sort kryteria. Z moich testów:

db.posts.find({hashtags: /^noticias/ }).limit(15).sort({hashtags:1, rank : -1}).explain()

Nie wymaga skanowania i zamawiania, zwraca n i nscanned liczby rekordów, których szukasz. Oznaczałoby to również sortowanie według hashtags klucz, który może być przydatny lub nie, ale powinien zwiększyć wydajność zapytania.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. liczba mongodb vs znajdowanie z liczbą

  2. Jak wykonać polecenie wyszukiwania pełnotekstowego w MongoDB za pomocą sterownika Java?

  3. Mongodb Mongoimport zbyt duży:Błędy analizy błędów

  4. Grupuj dokumenty Mongo według identyfikatora i uzyskaj najnowszy dokument według sygnatury czasowej

  5. Kolejność Mongo według długości tablicy