Heredé un gran servidor MongoDB en el trabajo y me encargaron averiguar por qué las consultas que se ejecutan en él son tan lentas. El DB contiene toneladas y toneladas de registros (del orden de 10 ^ 9) y ocupa unos 300 GiB. Al principio, pensé que el número bruto de registros podría haber sido el culpable, por lo que configuré índices en los campos apropiados. Fue de gran ayuda para las consultas que buscaban criterios que estaban en el DB, pero tomaría entre 80 y 90 minutos para consultas donde no habría coincidencias. ¿Alguna idea sobre cómo abordar esto?
9
Respuestas:
Parece que le falta un índice importante, especialmente porque la consulta sin coincidencias está tardando mucho más que una consulta con coincidencias. ¿Qué tipo de consulta es? ¿Quizás necesitas un índice compuesto? ¿Está utilizando
where
como parte de la consulta?No soy un experto en MongoDB, pero 80-90 minutos es absolutamente anormal. No sé cómo "suena" MongoDB para Arenstar, pero se ha demostrado que maneja miles de millones de documentos (terabytes de datos) .
fuente
Esto podría ser demasiado tarde para una respuesta, pero pensé que valía la pena mencionarlo. Hay herramientas como el mongostat que se pueden usar para ver lo que realmente está sucediendo. Demasiados errores de índice, demasiados errores de página. Si está ejecutando operaciones de lectura y escritura simultáneas, también debe buscar el porcentaje de bloqueo. 300 GB no es una gran cantidad de mongodb para manejar. Fácilmente puede ir mucho más allá de eso.
Otros comandos útiles:
fuente
Mire la página de MongoDB Database Profiler , particularmente la sección sobre Optimización del rendimiento de la consulta .
fuente
MongoDb es escala web ... Lo siento, tengo que decir que ...
¿No es probable que las partidas tarden un tiempo en basarse quizás en un escaneo de rango?
Lo desglosaría ... Mongo no suena como un DB para manejar 300 gb, y probablemente aún no sea lo suficientemente maduro como para saber cómo actúa con grandes cantidades de datos ...
¿Por qué razón estás usando Mongo?
fuente