数据库序列:为什么递增不是 1?
Database sequences: Why incrementing by other than 1?
我想知道,为什么你应该使用 increment by
不是“1”的东西。
我知道,序列可能有间隙,例如因为缓存,但这不是我现在要问的。我想知道,为什么最好使用
create sequence SEQ start with 1 increment by 20
而不是
create sequence SEQ start with 1 increment by 1
Oracle,我认为,例如使用20的增量,JPA(Java持久性API)定义的序列默认为50的增量。
- 但是有什么好处呢?
- 我应该使用什么值?
感谢您的回答!亲切的问候!
我知道的目的是,如果你有一个数据集存储在 20 个数据库服务器上。如果它们每个递增 1,它们将生成相同的值,并且如果您需要合并数据将很难。
如果这 20 个服务器中的每一个都递增 20,并且每个服务器都以不同的偏移量开始,那么它们都会分配不同的 ID。因此,如果您需要为报告合并它们,或者在重建您的服务器集时,您不会有冲突。
我想知道,为什么你应该使用 increment by
不是“1”的东西。
我知道,序列可能有间隙,例如因为缓存,但这不是我现在要问的。我想知道,为什么最好使用
create sequence SEQ start with 1 increment by 20
而不是
create sequence SEQ start with 1 increment by 1
Oracle,我认为,例如使用20的增量,JPA(Java持久性API)定义的序列默认为50的增量。
- 但是有什么好处呢?
- 我应该使用什么值?
感谢您的回答!亲切的问候!
我知道的目的是,如果你有一个数据集存储在 20 个数据库服务器上。如果它们每个递增 1,它们将生成相同的值,并且如果您需要合并数据将很难。
如果这 20 个服务器中的每一个都递增 20,并且每个服务器都以不同的偏移量开始,那么它们都会分配不同的 ID。因此,如果您需要为报告合并它们,或者在重建您的服务器集时,您不会有冲突。