一.序列生成ID
使用查询序列,再插入表方式时,为了避免每一次都查询序列,采用方式:
1.序列步长设为 100 或 1000 等值
程序从序列中读取值后,下一次取值+1返回就可以了,不必查库了,直到达到步长长度,就再次查询序列。
限制:程序可缓存的ID个数==步长
2.序列步长为1
程序从序列中读取值后保存,并设置缓存容量如1000,那么每次生成ID = 序列值 *1000+ (index++)
相当于序列值扩大了1000倍,程序中缓存 1000个数,用于生成ID,当缓存用完后,再次请求序列。
3.多库同名表数据 ID 由序列生成
多库情况下,同名表的ID不应该有相同的。
但序列是从各个库中生成的,可能相同。
解决方式:
如10个库,第0个库,序列起始值为0,步长为10,
第1个库,序列起始值为1 ,步长为10,
。。。。。。。。。以此类推。
则 第 0个库序列生成: 0 10 20 30
第1个库序列生成: 1 11 21 31
第2个库序列生成: 2 12 22 32
第9个库序列生成: 9 19,29 39