MongoDB Limitaciones de Índices
Overhead adicional
Cada índice ocupa cierto espacio de almacenamiento, y durante las operaciones de inserción, actualización y eliminación también se necesita operar sobre el índice. Por lo tanto, si rara vez realizas operaciones de lectura en una colección, se recomienda no usar índices.
Uso de memoria (RAM)
Debido a que los índices se almacenan en la memoria (RAM), debes asegurarte de que el tamaño del índice no supere el límite de memoria.
Si el tamaño del índice es mayor que el límite de memoria, MongoDB eliminará algunos índices, lo que provocará una degradación del rendimiento.
Limitaciones de consultas
Los índices no pueden ser utilizados por las siguientes consultas:
- Expresiones regulares y operadores de negación, como $nin, $not, etc.
- Operadores aritméticos, como $mod, etc.
- Cláusula $where
Por lo tanto, es un buen hábito verificar si tus sentencias utilizan índices; puedes usar explain para consultarlo.
Límites de la clave de índice
Desde la versión 2.6, si el valor de un campo de índice existente supera el límite de la clave de índice, MongoDB no creará el índice.
Insertar documentos que excedan el límite de la clave de índice
Si el valor del campo de índice de un documento supera el límite de la clave de índice, MongoDB no convertirá ningún documento en una colección indexada. Similar a las herramientas mongorestore y mongoimport.
Límites máximos
- El número de índices en una colección no puede exceder de 64.
- La longitud del nombre del índice no puede exceder los 128 caracteres.
- Un índice compuesto puede tener como máximo 31 campos.