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

MongoDB регулярен израз с индексирано поле

Причината за разликата в производителността тук вероятно е, че с активиран индекс вашата заявка трябва да премине през индекса (зареждане в паметта), след което да зареди съвпадащите документи, които също да бъдат върнати в паметта. Тъй като не използвате префиксната заявка, всички стойности в индекса ще бъдат сканирани и тествани спрямо регулярния израз. Не е много ефективен.

Когато премахнете индекса, вие просто правите сканиране на таблица и съвпадение на регулярния израз там - по същество сте опростили леко нещата от първия.

Може да успеете да направите индексираната версия по-бърза, ако беше заявка за покрит индекс , също така вероятно би било по-бързо, ако това беше съставен индекс и трябваше да го комбинирате с критериите за друго поле.

Когато използвате префиксна заявка, не че тя използва само индекс, но вие използвате индекса ефективно, което е ключово, и следователно виждате реалните печалби в производителността.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb - $group в $group (по 'ключ')

  2. MongoDB изберете брой (различен x) в индексирана колона - брой уникални резултати за големи набори от данни

  3. Как да слушате само localhost на MongoDB

  4. Как да търся обект по неговия ObjectId в mongo конзолата?

  5. Обобщаване на $lookup с C#