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

¿Puedo modificar el índice existente en MongoDB sin eliminarlo?

No hay forma de alterar un índice como usted describe, y si lo hubiera, creo que el resultado en términos de rendimiento sería similar:¿cómo usaría la base de datos el índice medio creado/alterado mientras se realizaba esta operación, por ejemplo?

En su lugar, recomendaría usar la opción de fondo para crear el índice en un solo nodo, si esa es su configuración:llevará más tiempo pero no interferirá tanto con su funcionamiento normal. Una vez que haya terminado, puede soltar el índice anterior cuando lo desee.

Sin embargo , si tiene un conjunto de réplicas (recomendado), debe tener en cuenta que la creación de índices siempre se realiza (actualmente) en primer plano en el secundario. Si desea evitar la carga en sus secundarios, debe seguir los pasos descritos aquí para eliminar un miembro de uno en uno y crear el índice requerido antes de volver a unirse al conjunto:

http://docs.mongodb.org/manual/administration/indexes/#index-building-replica-sets

Actualizar

Las compilaciones de índices de fondo en secundarios serán posibles a partir de la versión 2.6 (consulte las notas de la versión para obtener más detalles). Esto no se adaptará a versiones anteriores, por lo que la nota anterior se aplicará a las versiones anteriores a la 2.6.

Finalmente, como nota general, los índices creados en segundo plano generalmente serán más grandes y menos eficientes que los creados en primer plano, por lo que la metodología anterior seguirá teniendo sus usos.