用于UUID的最佳(最有效)DataType作为JPA ID

时间:2009-04-08 16:27:19

标签: java jpa java-ee guid uuid

我想将UU​​ID用作我的JPA对象的ID。

我目前只使用String来存储UUID。什么会更有效率?

1 个答案:

答案 0 :(得分:5)

您如何衡量效率?

例如,将UUID(这是byte[]的文本编码)存储为几个long值将允许您在64位体系结构上快速比较它们(更多快于String比较,这是逐个字符的)。但是,您的编码效率会受到影响,因为您必须编写自定义类型。

你的情况有什么重要意义?


如果您对数据库中的性能感兴趣,性能将在一定程度上取决于您选择的数据库,但所有数据都将逐字节地比较UUID。因此,重要的是使键之间的差异更可能朝向键的开头。

UUID在这方面设计得很好。最好的UUID是“随机”风格。它们在任何地方都没有很多常见的子串,包括开头,并且它们不会泄漏有关生成它们的机器的信息。但是,UUID的“时间戳”风格也是一个很好的关键,因为低阶位(变化很快)首先在字符串中,而高阶位(对于连续的UUID不会改变)来后面。