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

mongodb:¿limit() aumentará la velocidad de consulta?

Usando limit() informas al servidor que no recuperarás más de k documentos. Permitiendo algunas optimizaciones para reducir el consumo de ancho de banda y acelerar las clasificaciones. Finalmente, al usar una cláusula de límite, el servidor podrá usar mejor el máximo de 32 MB disponible al clasificar en RAM (es decir, cuando el orden de clasificación no se puede obtener de un índice).

Ahora, la larga historia:find() devuelve un cursor. De forma predeterminada, el cursor transferirá los resultados al cliente por lotes. De la documentación ,:

Usando limit() el cursor no necesitará recuperar más documentos de los necesarios. Reduciendo así el consumo de ancho de banda y la latencia.

Tenga en cuenta que, dado su caso de uso, probablemente usará un sort() operación también. De la misma documentación que la anterior:

Y la página de documentación de sort() explica más:

Esa limitación de 32 MB no es específica para ordenar usando un limit() cláusula. Cualquier tipo cuyo orden no pueda obtenerse de un índice sufrirá la misma limitación. Sin embargo, con un simple ordenar la necesidad del servidor para contener todos documentos en su memoria para ordenarlos. Con un limitado ordenar, solo tiene que almacenar k documentos en la memoria al mismo tiempo.