数据库序列:为什么增量不是1?

时间:2017-12-05 16:45:29

标签: sql database sequence auto-increment

我很想知道为什么你应该使用{1}之外的其他“1”。

我知道,序列可能有间隙,例如因为缓存,但这不是我现在要求的。我想知道,为什么使用

应该更好
increment by

而不是

create sequence SEQ start with 1 increment by 20

Oracle,我认为,例如使用20的增量,JPA(Java Persistence API)定义了默认增量为50的序列。

  • 但有什么好处?
  • 我应该使用什么价值?

感谢您的回答!亲切的问候!

1 个答案:

答案 0 :(得分:1)

我知道的目的是,如果您有一个存储在20个数据库服务器上的数据集。如果它们各自递增1,它们将生成相同的值,如果您需要这样做,则很难合并数据。

如果20个服务器中的每一个都递增20,并且每个服务器以不同的偏移量开始,则它们都将分配不同的id。因此,如果您需要将它们合并为报表,或者在重新构建服务器集时,则不会发生冲突。