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

Mongodb:wpływ na wydajność $ HINT

Czy możesz podać utworzony indeks złożony. Nie mam zbyt dobrej reputacji, więc nie mogę zadać tego w komentarzu. Ale mam możliwą odpowiedź na twoje pytanie. Mongo używa właściwości o nazwie „Equality-Sort-Range”, która zachowuje się w inny sposób. Rozważmy poniższą sytuację - Masz kilka dokumentów z polami {nazwa :ciąg, pin :numer sześciocyfrowy, SSN :numer dziewięciocyfrowy} i masz dwa indeksy jako - {nazwa:1, pin:1, ssn:1} i drugi indeks is {name:1, ssn :1, pin :1} teraz rozważ poniższe zapytania:

  1. db.test.find({name: "XYZ", pin: 123456"}).sort({ssn: 1}) To zapytanie użyje pierwszego indeksu, ponieważ mamy w kontynuacji indeks złożony. Nazwa, pin, ssn są w dalszej części.
  2. db.test.find({name: "XYZ", pin: {$gt :123456"}}).sort({ssn: 1}) Można się spodziewać, że w tym zapytaniu zostanie użyty pierwszy indeks. Ale zaskakująco indeks sekund zostanie użyty przez to zapytanie, ponieważ ma ono operację zakresu na pinie.

Właściwość Equality-sort-range mówi, że planer zapytań będzie lepiej używał indeksu pola, które służy - „equality-sort-range”. Drugie zapytanie ma zakres na pinie, więc zostanie użyty drugi indeks, podczas gdy pierwsze zapytanie ma równość we wszystkich polach, więc zostanie użyty pierwszy indeks.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak ustawić pole mongo ze zmiennej?

  2. Czy mongo może upsertować dane tablicy?

  3. jak ustawić poziom rejestrowania na info dla MongoDb?

  4. Czy w ramach agregacji Mongodb istnieje funkcja dolna?

  5. Mongo przesuń do tablicy wewnątrz tablicy