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

Wyrażenie regularne MongoDB z polem indeksowanym

Przyczyną różnic w wydajności jest prawdopodobnie to, że przy włączonym indeksie zapytanie musi przejść przez indeks (załadować do pamięci), a następnie załadować również pasujące dokumenty, które mają zostać zwrócone do pamięci. Ponieważ nie używasz zapytania z prefiksem, wszystkie wartości w indeksie zostaną przeskanowane i przetestowane pod kątem wyrażenia regularnego. Niezbyt wydajny.

Kiedy usuniesz indeks, po prostu skanujesz tabelę i dopasowujesz tam wyrażenie regularne - zasadniczo uprościłeś nieco rzeczy od pierwszego.

Możesz przyspieszyć indeksowaną wersję, gdyby była to zapytania o indeks objęty zasięgiem , prawdopodobnie byłoby też szybciej, gdyby był to indeks złożony i trzeba było połączyć go z kryteriami dla innego pola.

Kiedy używasz zapytania prefiksowego, nie chodzi o to, że używa on tylko indeksu, ale używasz go wydajnie, co jest kluczowe, a zatem widzisz rzeczywisty wzrost wydajności.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo-go-driver error Nowy błąd klienta ClientOptions w argumencie mongo.NewClient

  2. MongoDB:Aktualizacja poddokumentu

  3. Unikalne wyniki Rails &Mongoid

  4. NodeJS + limit czasu Mongoose przy połączeniu

  5. brak lboost_thread-mt w sterowniku mongodb cpp (serwer ubuntu x64)