🚀 Optimización de consultas con índices
En MongoDB, los índices son fundamentales para mejorar el rendimiento de tus consultas. Sin índices, cada búsqueda requiere escanear todos los documentos de la colección, lo que se vuelve lento cuando la base de datos crece.
🔹 1️⃣ Cómo los índices optimizan las consultas
Los índices actúan como un mapa o tabla de contenido de tu colección, permitiendo que MongoDB encuentre documentos rápidamente sin recorrer cada registro.
// Consulta sin índice
db.productos.find({ nombre: "Teclado mecánico" })
Esta consulta escaneará todos los documentos.
Si existe un índice sobre nombre, MongoDB accederá directamente a los documentos relevantes.
// Consulta con índice
db.productos.createIndex({ nombre: 1 })
db.productos.find({ nombre: "Teclado mecánico" })
🔹 2️⃣ Uso de índices compuestos
Para consultas que filtran por varios campos, un índice compuesto mejora significativamente la velocidad:
// Índice compuesto
db.productos.createIndex({ categoria: 1, precio: -1 })
// Consulta optimizada usando ese índice
db.productos.find({ categoria: "periféricos" }).sort({ precio: -1 })
MongoDB puede utilizar este índice tanto para filtrar por categoria como para ordenar por precio sin necesidad de ordenar en memoria.
🔹 3️⃣ Evaluar rendimiento con explain()
Antes de crear un índice, es útil comprobar cómo MongoDB planea ejecutar una consulta:
// Ver el plan de ejecución db.productos.find({ nombre: "Teclado mecánico" }).explain("executionStats")
Fíjate en el número de documentos examinados (totalDocsExamined).
Si es alto, un índice puede reducir este número y acelerar la consulta.
🔹 4️⃣ Buenas prácticas para optimización
- Crea índices solo sobre campos que usas frecuentemente en filtros o ordenamientos.
- Evita índices redundantes; revisa
db.collection.getIndexes()periódicamente. - Usa índices compuestos para consultas frecuentes que combinan varios campos.
- Considera índices de texto para búsquedas dentro de strings grandes.
- Revisa siempre el plan de ejecución con
explain()antes y después de crear índices. - Ten en cuenta que los índices ocupan espacio adicional y pueden afectar inserciones y actualizaciones.
🧭 5️⃣ Resumen rápido
- Los índices aceleran consultas filtrando directamente los documentos relevantes.
- Índices simples y compuestos optimizan búsquedas y ordenamientos frecuentes.
- Evalúa siempre con
explain()para medir el impacto de los índices. - Planifica cuidadosamente los índices para no afectar la escritura ni ocupar espacio innecesario.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias