ID生成

一.序列生成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

  

猜你喜欢

转载自java12345678.iteye.com/blog/2384293
今日推荐