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

mai*_*rgs 3 java uuid jpa guid java-ee

我想使用UUID作为我的JPA对象的ID.

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

eri*_*son 5

你如何衡量效率?

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

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


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

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