Pregunta

Supongamos que una tabla de base de datos tiene una columna " Nombre " que se define como clave para la tabla. Los valores de nombre habituales serán " Bill " ;, " Elizabeth " ;, " Bob " ;, " Alice " Las búsquedas en la tabla también se realizarán con la clave de nombre.

¿El hashing de los valores optimiza las operaciones de alguna manera? es decir, ingresar cada nombre como un valor de hash del nombre (suponga MD5 - 32 bits).

Si es así, ¿no debería ser esto una característica de la base de datos y no algo que el cliente maneje?

¿Fue útil?

Solución

Suponiendo que su base de datos genere un índice para la clave principal (y no puedo imaginar que no lo haga), lo está haciendo por usted. Así que sí, absolutamente debería ser algo que maneja la base de datos.

Otros consejos

" ¿El hashing de los valores optimiza las operaciones de alguna manera? " En realidad no.

Los hash son unidireccionales. No puede hacer una exploración de tabla y reconstruir el nombre original.

Si desea mantener tanto el nombre como el hash de nombre, ha roto una regla fundamental al incluir datos derivados. Ahora una actualización de nombre requiere una actualización de hash.

El " distribuye mis valores de manera uniforme " eso ocurriría con un hash, es el trabajo de un índice.

No, no los trates. Su base de datos creará un índice basado en los datos, y el hashing no ayudará. La única vez que podría ayudar es si sus valores clave eran mucho más largos que el hash.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top