在休眠 spring 启动和 postgresql 上,带有 EmbeddedId 的复合键与带有 sha256 的计算哈希 id

Composite key with EmbeddedId vs calculated hash id with sha256 on hibernate spring boot and postgresql

我使用 java spring 使用 postgresql 启动和休眠。我需要一个组合键 (embeddedId),因为一个 id 是由 3 个其他 id 组合而成的。通过 sha-256 计算单个 id 还是为该实体使用复合键更好?我需要最好的性能,我认为在单个键上的查找比在 3 个 id 的 id 上查找更快。 sha-256计算的结果是否可重复(spring哈希码取决于执行实例)?

谢谢

我不知道这 3 列有什么数据类型,但如果它们是整数或长整数,您将只有 32 * 3 = 96 或 64 * 3 = 192 位来存储和比较查找,这通常是比 256 位更快。除此之外,理论上您可以对不同的值进行散列冲突,因此散列不一定是唯一的。那里有文章和帖子表明 SHA-256 非常独特,但如果这真的很重要,我不会打赌。