MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongodb:Въздействие върху производителността на $HINT

Можете ли да посочите съставния индекс, който сте създали. Нямам голяма репутация, така че не можах да попитам това в коментар. Но имам възможен отговор на вашия въпрос. Mongo използва свойство, наречено „Equality-Sort-Range“, което се държи по различен начин. Помислете за ситуацията по-долу – имате няколко документа с полета {име:низ, ПИН:шестцифрен номер, SSN:деветцифрен номер} и имате два индекса като - {име:1, ПИН:1, ssn:1} и втори индекс е {name:1, ssn :1, pin :1} сега разгледайте заявките по-долу:

  1. db.test.find({name: "XYZ", pin: 123456"}).sort({ssn: 1}) Тази заявка ще използва първия индекс, защото имаме съставен индекс в продължение. Името, ПИН кодът, ssn са в продължение.
  2. db.test.find({name: "XYZ", pin: {$gt :123456"}}).sort({ssn: 1}) Очаквате, че първият индекс ще бъде използван в тази заявка. Но изненадващо индексът на секундите ще бъде използван от тази заявка, защото има операция за обхват на pin.

Свойството Equality-sort-range казва, че програмата за планиране на заявки ще използва индекса на полето, което обслужва - "equality-sort-range" по-добре. Втората заявка има диапазон на pin, така че вторият индекс ще бъде използван, докато първата заявка има равенство във всички полета, така че ще бъде използван първият индекс.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB изтрива много бавно

  2. Съвпадение на множество критерии в масив

  3. Планировчик на събития (cronjob) в MongoDB?

  4. Еквивалент на опцията out:reduce на mongo в hadoop

  5. MongoDB $pull синтаксис