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

Problema de rendimiento de MongoDB:una sola colección enorme frente a varias colecciones pequeñas

La separación de las colecciones le brinda un índice gratuito sin ningún gasto real. Hay una sobrecarga para un escaneo de índice, especialmente si el índice realmente no lo está ayudando a reducir la cantidad de resultados que tiene que escanear (si tiene un millón de resultados en el índice, pero tiene que escanearlos todos e inspeccionarlos, no te va a ayudar mucho).

En resumen, separarlos es una optimización válida, pero debe mejorar sus índices para sus consultas antes de decidir tomar esa ruta, lo que considero una medida drástica (un índice sobre el precio del producto podría ayudarlo más en este caso) .

El uso de Explain() puede ayudarlo a comprender cómo funcionan las consultas. Algunos conceptos básicos son:Idealmente, desea una proporción baja de n escaneados a n. No desea scanAndOrder =true, y no desea BasicCursor, por lo general (esto significa que no está utilizando ningún índice).