我使用的实体具有生成的ID(因此,实体具有一个由@Id
和标记的字段@GeneratedValue
)。我将在业务逻辑中使用实体的生成的ID,但我有一个问题:
如果我删除实体,它的ID是否可以重复使用?即新生成的ID只能比以前生成的ID大吗?
您不需要重复使用ID,也不必浪费时间为此担心。(这是初学者的数据库问题。)
通常,从技术上讲,重用ID是可能的-尽管不方便-但它需要锁定整个表,因此对于并发/多用户使用效率极低。
而且,恢复的ID不会是连续的范围,因此表示效率很低。
没有认真的数据库系统实现这种方案。
因此,不必担心恢复。只要确保您分配的键类型(整数或长整数)具有足够的容量(对于INTEGER为20亿,对于long / BIGINT为2 ^ 63),就可以在合理的最大可能交易量下使用200多年。
例如,当前每天有10,000条记录:
这仅是〜34位-对于'int'来说太大了,但是使用长(63位为正数),它将为您提供2 ^ 29(〜5亿)倍的备用容量。
然后,您可以告诉您的老板,密钥恢复不是必需的,并且可以确信,该系统在未来1000亿年的任何时间都不会用完密钥。
归档时间: |
|
查看次数: |
456 次 |
最近记录: |