Java 在Oracle中将UUID用作主键有哪些性能缺陷?

Java 在Oracle中将UUID用作主键有哪些性能缺陷?,java,oracle,hibernate,Java,Oracle,Hibernate,我愿意使用UUID作为java应用程序实体的主键,使用hibernate作为我的应用程序ORM,并在服务器端生成UUID。以下是我希望使用UUID作为主键的原因: 它将从数据库中删除ID的生成(这可能有助于提高性能,因为它不需要在数据库端处理序列逻辑) Equals和Hashcode更简单、更高效,因为我只需要使用一个字段Id 它解决了使用Equals和Hashcode分离实体的问题,因为它将在我创建新实例时创建 我可以在双向关系上使用equals和hashcode(只使用上面提到的id),就

我愿意使用UUID作为java应用程序实体的主键,使用hibernate作为我的应用程序ORM,并在服务器端生成UUID。以下是我希望使用UUID作为主键的原因:

  • 它将从数据库中删除ID的生成(这可能有助于提高性能,因为它不需要在数据库端处理序列逻辑)
  • Equals和Hashcode更简单、更高效,因为我只需要使用一个字段Id
  • 它解决了使用Equals和Hashcode分离实体的问题,因为它将在我创建新实例时创建
  • 我可以在双向关系上使用equals和hashcode(只使用上面提到的id),就像在OneToMany中一样,而不会出现堆栈溢出异常
  • 我不在乎id是否达到其最大值

但是我关心的是检索和插入的性能,有什么影响吗?你知道我在哪里可以找到这方面的基准吗?

我记得读过一篇关于这一主题的好文章,如果它有帮助的话: