2.2.1 MySQL offset-step方式
MySQL offset-step方式利用了数据库的并发和并发更新互斥的特性。
在数据库中建立一张表,保存序列的当前值和步长,使用该序列时,系统从表中读取序列的当前值,加上步长,返回给客户端的同时更新表中的当前值。
线程获取序列的执行步骤如下:
- 检查是否有请求序列未用的缓存的序列值,如果没有,执行步骤2;否则,执行步骤4。
- 到相应的数据节点上执行 SELECT dble_seq_nextval(\'seqName\'); 其中, seqName为请求序列的序列名。此步骤获取的序列值数依赖于该序列的步长increment,为区间[current_value, current_value+increment)中的值。
- 缓存步骤2得到的序列值。
- 返回缓存的序列值中第一个未用的序列值。
以上提到的部分配置内容参见1.7.1 offset-step方式