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

Expresión regular MongoDB con campo indexado

El motivo de la diferencia de rendimiento aquí es probablemente que, con el índice habilitado, su consulta debe atravesar el índice (cargar en la memoria) y luego cargar los documentos coincidentes para que también se devuelvan a la memoria. Dado que no está utilizando la consulta de prefijo, todos los valores en el índice se escanearán y probarán con la expresión regular. No muy eficiente.

Cuando elimina el índice, solo está haciendo un escaneo de la tabla y haciendo coincidir la expresión regular allí; esencialmente simplificó ligeramente las cosas desde el primero.

Es posible que pueda hacer que la versión indexada sea más rápida si fuera un consulta de índice cubierto , probablemente también sería más rápido si se tratara de un índice compuesto y necesitara combinarlo con los criterios de otro campo.

Cuando usa una consulta de prefijo, no es que solo use un índice, sino que usa el índice de manera eficiente, lo cual es clave y, por lo tanto, ve las ganancias reales de rendimiento.