sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB reguljärt uttryck med indexerat fält

Anledningen till prestandaskillnaden här är sannolikt att, med indexet aktiverat, måste din fråga gå igenom indexet (ladda in i minnet), och sedan ladda de matchande dokumenten som också ska returneras till minnet. Eftersom du inte använder prefixfrågan kommer alla värden i indexet att skannas och testas mot det reguljära uttrycket. Inte särskilt effektivt.

När du tar bort indexet gör du bara en tabellskanning och matchar regexet där - du förenklade i princip saker från den första något.

Du kanske skulle kunna göra den indexerade versionen snabbare om den var en täckt indexfråga , skulle det också vara snabbare om detta var ett sammansatt index och du behövde kombinera det med kriterierna för ett annat fält.

När du använder en prefixfråga är det inte så att den bara använder ett index då, utan du använder indexet effektivt, vilket är nyckeln, och därför ser du de verkliga prestandavinsterna.




  1. Mongo aggregeringsramverk, sortera och sedan grupp fungerar inte

  2. Mongoose Date.now-tiden är inte korrekt

  3. Hur konfigurerar jag JedisConnectionFactory att använda SSL så att jag inte får felet:JedisDataException:ERR okrypterad anslutning är förbjuden?

  4. Hur man ansluter till MySQL utan root-lösenord på terminal