MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB, desempenho de consulta por expressão regular em campos indexados


Na verdade, de acordo com a documentação,

Se existir um índice para o campo, o MongoDB fará a correspondência da expressão regular com os valores no índice, o que pode ser mais rápido do que uma varredura de coleção. Uma otimização adicional pode ocorrer se a expressão regular for uma “expressão de prefixo”, o que significa que todas as correspondências em potencial começam com a mesma string. Isso permite que o MongoDB construa um “intervalo” a partir desse prefixo e apenas corresponda aos valores do índice que se enquadram nesse intervalo.

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

Em outras palavras:

Para /Jon Skeet/ regex ,mongo fará uma varredura completa das chaves no índice e buscará os documentos correspondentes, o que pode ser mais rápido que a varredura de coleção.

Para /^Jon Skeet/ regex ,mongo verificará apenas o intervalo que começa com o regex no índice, o que será mais rápido.