Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Índices encriptados

Los índices encriptados recopilan y almacenan hash de los valores del campo indexado.

Soporte de índices encriptada particionado usando claves de fragmento cifradas. La partición basada en hash utiliza un índice hash de un campo como la clave de partición para distribuir datos a través de su clúster particionado.

La indexación hash es ideal para claves de partición con campos que cambian monotónicamente , como los valores ObjectId o las marcas de tiempo. Cuando usas particionado por rango con un valor de la clave de partición monotónicamente creciente, el fragmento con un límite superior de MaxKey recibe la mayoría de las escrituras entrantes. Este comportamiento restringe las operaciones de inserción a una sola partición, lo que remueve la ventaja de escrituras distribuidas en un clúster.

Para obtener más información sobre cómo elegir el mejor enfoque de particionado para tu aplicación, consulta Particionado encriptado vs clasificado por rango.

Los índices encriptados truncan números de punto flotante a enteros de 64 bits antes de aplicar el hash. Por ejemplo, un índice encriptado utiliza el mismo hash para almacenar los valores 2.3, 2.2 y 2.9. Se trata de una colisión, en la que se asignan varios valores a una única clave encriptada. Las colisiones pueden tener un impacto negativo en el rendimiento de los queries.

Para evitar colisiones, no utilices un índice encriptado para números de punto flotante que no se puedan convertir de manera confiable a enteros de 64 bits y luego volver a punto flotante.

Los índices encriptados no admiten números de punto flotante mayores que 2 53.

Los índices encriptados tienen limitaciones para los campos de los arreglos y la propiedad única.

La función hash no soporta índices multiclave:

  • No se puede crear un índice encriptado en un campo que contenga un arreglo ni insertar un arreglo en un campo indexado encriptado.

  • Si algún campo de un índice compuesto es un arreglo, ningún campo de ese índice puede usar un índice cifrado. Esto incluye campos que no son arreglos.

  • No se pueden usar índices hash en un índice compuesto que se convierta en un índice multivalor (multikey).

Los índices hash no pueden cubrir un query.

No puedes especificar una restricción única en un índice encriptado. En cambio, puedes crear un índice adicional no encriptado con la restricción única. MongoDB puede utilizar ese índice no encriptado para aplicar la unicidad en el campo elegido.

Para crear un índice encriptado, consulta Crear un índice encriptado.

En esta sección, se describen los detalles técnicos de los índices encriptados.

Importante

Cuando MongoDB utiliza un índice encriptado para resolver un query, utiliza una función hash para calcular automáticamente los valores hash. Las aplicaciones no necesitan calcular hashes.

Para ver cuál sería el valor encriptado para una clave, usa el método convertShardKeyToHashed(). Este método utiliza la misma función hash que el índice encriptado.

La función de hash contrae el documento incrustado y calcula el hash para el valor completo.

Volver

Restricciones

En esta página