sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB, rendimiento de consulta por expresión regular en campos indexados

En realidad, de acuerdo con la documentación,

Si existe un índice para el campo, entonces MongoDB compara la expresión regular con los valores del índice, lo que puede ser más rápido que un escaneo de colección. Puede ocurrir una mayor optimización si la expresión regular es una "expresión de prefijo", lo que significa que todas las coincidencias potenciales comienzan con la misma cadena. Esto permite que MongoDB construya un "rango" a partir de ese prefijo y solo coincida con los valores del índice que se encuentran dentro de ese rango.

http://docs.mongodb.org/manual/reference/operator/query/regex/#index-use

En otras palabras:

Para /Jon Skeet/ regex, mongo escaneará por completo las claves en el índice y luego buscará los documentos coincidentes, lo que puede ser más rápido que el escaneo de colección.

Para /^Jon Skeet/ regex, mongo escaneará solo el rango que comienza con la expresión regular en el índice, lo que será más rápido.