最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

自增序列产生器的实现思路_MySQL

来源:动视网 责编:小采 时间:2020-11-09 18:16:23
文档

自增序列产生器的实现思路_MySQL

自增序列产生器的实现思路_MySQL:bitsCN.com 自增序列产生器的实现思路 l 需求u 实现MySQL自带的字段值自动增长等效的功能;u 同一应用集群中数据库表的自增类型字段值具有全局唯一性;u 支持数据库级别的水平拆分表,同时还需要支持数据库内部的水平拆分表,其ID值都来源于同一条配置记录;
推荐度:
导读自增序列产生器的实现思路_MySQL:bitsCN.com 自增序列产生器的实现思路 l 需求u 实现MySQL自带的字段值自动增长等效的功能;u 同一应用集群中数据库表的自增类型字段值具有全局唯一性;u 支持数据库级别的水平拆分表,同时还需要支持数据库内部的水平拆分表,其ID值都来源于同一条配置记录;


bitsCN.com
自增序列产生器的实现思路 l 需求u 实现MySQL自带的字段值自动增长等效的功能;u 同一应用集群中数据库表的自增类型字段值具有全局唯一性;u 支持数据库级别的水平拆分表,同时还需要支持数据库内部的水平拆分表,其ID值都来源于同一条配置记录; l 存储设计序列产生器配置表increment_config结构:列名称 数据类型 是否为空 默认值 是否自增 主键/索引 备注ID INT UNSIGNED N AUTO_INCREMENT PRIMARY KEY(ID) 唯一标示,无意义TABLE_NAME VARCHAR(40) N UNIQUE INDEX 表名称TABLE_TOTAL TINYINT UNSIGNED N 0 标记数据库内分表的数量COLUMN_NAME VARCHAR(40) N 字段名称START_VALUE BIGINT UNSIGNED N 1 开始值OFFSET_VALUE SMALLINT UNSIGNED N 10000 增长的步长FLAG TINYINT N 0 0–正常;1–作废值GMT_MODIFIED TIMESTAMP N 数据库自动更新此值
备注:1>. GMT_MODIFIED不由程序或人为主动去负责更新与填写,而是通过数据库的特性自动填写与更新;2>. 对于数据库内部的水平分表,即TABLE_TOTAL<>0,则通过TABLE_NAME+TABLE_TOTAL组合区分;l 对存储表的操作 u 初始化的 SQL对于需要用到序列产生器的表,则在此配置表中增加一条记录,例如:INSERT INTO(TABLE_NAME,TABLE_TOTAL,COLUMN_NAME,START_VALUE,OFFSET_VALUE,FLAG)VALUES(‘msg_’,23, ’MSG_ID’,1,10000,0);u 序列生成器操作的 SQL程序每次获得序列区间段,以及更新相关数据值操作的事务的过程SQL,假设msg_系列表对应的记录,在配置表中ID=1。START TRNSACTION;SELECT ID, TABLE_NAME,COLUMN_NAME,START_VALUE,START_VALUE+OFFSET_VALUE AS END_VALUEFROM  increment_config  WHERE ID=1 FOR UPDATE;UPDATE increment_config SET START_VALUE=START_VALUE+OFFSET_VALUE WHERE ID=1;COMMIT;l 程序实现建议u 为提供序列产生的速度,而提高业务处理的性能。程序需要以拿序列区间的方式实现,而不是每次需要的时候,都要去数据库获得序列号值;u 程序在每次启动的时候,要初始化配置表中所有有效记录的序列区间值;u 当程序拿到的区间值START_VALUE,经过一段时间使用后达到:START_VALUE=END_VALUE,处理步骤如下: 1>. 挂起当前的序列调用请求;2>. 做序列区间值获取的事务;3>. 把新获得区间值的START_VALUE,给予挂起的调用请求;总结:每个区间值的最大值(END_VALUE)始终作为当前期间的弃用值。 作者 snoopy7713 bitsCN.com

文档

自增序列产生器的实现思路_MySQL

自增序列产生器的实现思路_MySQL:bitsCN.com 自增序列产生器的实现思路 l 需求u 实现MySQL自带的字段值自动增长等效的功能;u 同一应用集群中数据库表的自增类型字段值具有全局唯一性;u 支持数据库级别的水平拆分表,同时还需要支持数据库内部的水平拆分表,其ID值都来源于同一条配置记录;
推荐度:
标签: 生成 的方法 实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top