我想将UUID用作JPA对象的ID.
我目前仅使用字符串来存储UUID.有什么会更有效的?
解决方法:
您如何衡量效率?
例如,将UUID(字节[]的文本编码)存储为几个长值将使您能够在64位体系结构上非常快速地比较它们(比字符串比较快得多,字符串比较是字符-按字符).但是,由于必须编写自定义类型,因此编码效率会受到影响.
在您的情况下重要的是什么?
如果您对数据库内的性能感兴趣,那么性能将在一定程度上取决于您选择的数据库,但是所有这些本质上都会逐字节比较UUID.因此,重要的是使键之间的差异更有可能接近键的开头.
UUID在这方面经过了精心设计.最好的UUID是“随机”样式.它们在任何地方都没有很多常见的子字符串,包括开头,并且它们不会泄漏有关生成它们的机器的信息.但是,UUID的“时间戳”样式也是一个很好的关键,因为低位(快速变化)在字符串中排在首位,而高位(对于连续的UUID不变)后来.