Pregunta

Quiero usar UUID como IDS para mis objetos JPA.

Actualmente solo estoy usando una cadena para almacenar el UUID. ¿Qué sería más eficiente?

¿Fue útil?

Solución

¿Cómo está midiendo la eficiencia?

Por ejemplo, almacenar el uuid (que es un texto que codifica un byte[]) como un par de long Los valores le permitirán compararlos muy rápidamente en una arquitectura de 64 bits (mucho más rápidamente que String Comparación, que es personaje por personaje). Sin embargo, su eficiencia de codificación sufriría, porque debe escribir un tipo personalizado.

¿Qué es importante en su caso?


Si está interesado en el rendimiento dentro de la base de datos, el rendimiento dependerá algo de la base de datos que elija, pero todo esencialmente comparará UUIDS byte-by-byte. Entonces, lo importante es hacer que las diferencias entre las claves sean más propensas a estar hacia el comienzo de la clave.

Los uuids están bien diseñados a este respecto. El mejor uuid es el estilo "aleatorio". No tienen muchas sustras comunes en ningún lado, incluido el comienzo, y no filtran información sobre la máquina que los generó. Pero, el estilo de la "marca de tiempo" de los uuids también es una buena clave, ya que los bits de orden bajo (que varían rápidamente) son los primeros en la cadena, mientras que los bits de alto orden (que no cambian para uuids sucesivos) llegan luego.

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