用于UUID作为JPA ID的最佳(最有效)数据类型是什么?

3

我希望将UUID用作我的JPA对象的ID。

目前我只是使用字符串来存储UUID。有什么更高效的方法吗?

1个回答

5

你是如何衡量效率的?

例如,将UUID(它是一个byte[]的文本编码)存储为一对long值将使您能够在64位体系结构上非常快速地比较它们(比逐个字符比较String要快得多)。但是,您的编码效率会受到影响,因为您必须编写自定义类型。

在您的情况下,什么最重要?


如果您关注数据库内的性能,则性能将在某种程度上取决于您选择的数据库,但所有数据库基本上都将按字节比较UUID。因此,重要的是使键之间的差异更可能出现在键的开头。

在这方面,UUID设计得很好。最好的UUID是“随机”样式。它们在任何地方都没有很多共同的子字符串,包括开头,并且不会泄漏有关生成它们的计算机的信息。但是,“时间戳”样式的UUID也可以成为一个很好的键,因为低阶位(快速变化的位)首先出现在字符串中,而高阶位(连续UUID不会改变的位)稍后出现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接