[发明专利]数据库主键id生成方法、装置、设备及存储介质在审
申请号: | 202011540536.4 | 申请日: | 2020-12-23 |
公开(公告)号: | CN112632071A | 公开(公告)日: | 2021-04-09 |
发明(设计)人: | 黄炳森 | 申请(专利权)人: | 平安普惠企业管理有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F9/455 |
代理公司: | 深圳市世联合知识产权代理有限公司 44385 | 代理人: | 汪琳琳 |
地址: | 518000 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 主键 id 生成 方法 装置 设备 存储 介质 | ||
本申请实施例公开了一种数据库主键id生成方法、装置、设备及存储介质,涉及数据库信息处理技术领域。该方法包括:获取当前的时间戳;获取容器初始标识符,并将容器初始标识符转换为目标容器标识符;根据掩码长度定义一个以整数表示的运算掩码;获取自增序列,调用自增序列以获取自增序列号,并对自增序列号与运算掩码执行位运算获取目标序列号;对时间戳、目标容器标识符和目标序列号执行位运算,生成目标主键id。所述方法通过对包含多种数值独特性的多个参数值进行位运算,使生成的主键id在单机容器或多容器情况下都是不重复的,在提升主键id生产效率的同时,减小了自增主键时的数据库资源竞争,并避免了容易暴露业务量的问题。
技术领域
本申请涉及数据库信息处理技术领域,特别是一种数据库主键id生成方法、装置、设备及存储介质。
背景技术
现有数据库的主键id(Identification,身份证明)生产方案一般有使用uuid(Universally Unique Identifier,通用唯一标识码)、主键自增或者开源的雪花算法等。
但以上主键id生成方式都有各自的缺陷:uuid会导致数据库分裂页,产生大量碎片以及插入数据慢等缺点;自增主键在分布式环境下最大值锁竞争激烈,也消耗性能,且最大的主键值即为业务量,容易暴露业务量;雪花算法为随机整数,也会导致数据库分页等缺陷。
发明内容
本申请实施例所要解决的技术问题是,提供一种数据库主键id生成方法、装置、设备及存储介质,提升主键id的生产效率,并减小数据库资源竞争和避免暴露业务量。
为了解决上述技术问题,本申请实施例提供一种数据库主键id生成方法,采用了如下所述的技术方案:
一种数据库主键id生成方法,包括:
基于预设的时间维度获取当前的时间戳;
获取容器初始标识符,并将所述容器初始标识符转换为以整数表示的目标容器标识符;
读取预设的掩码长度,根据所述掩码长度定义一个以整数表示的运算掩码;
获取自增序列,调用所述自增序列以获取自增序列号,并对所述自增序列号与所述运算掩码执行位运算获取目标序列号;
对所述时间戳、所述目标容器标识符和所述目标序列号执行位运算,生成目标主键id。
为了解决上述技术问题,本申请实施例还提供一种数据库主键id生成装置,采用了如下所述的技术方案:
一种数据库主键id生成装置,包括:
时间戳获取模块,用于基于预设的时间维度获取当前的时间戳;
容器标识获取模块,用于获取容器初始标识符,并将所述容器初始标识符转换为以整数表示的目标容器标识符;
掩码设置模块,用于读取预设的掩码长度,根据所述掩码长度定义一个以整数表示的运算掩码;
序列号计算模块,用于获取自增序列,调用所述自增序列以获取自增序列号,并对所述自增序列号与所述运算掩码执行位运算获取目标序列号;
主键id计算模块,用于对所述时间戳、所述目标容器标识符和所述目标序列号执行位运算,生成目标主键id。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如上述任意一项技术方案所述的数据库主键id生成方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安普惠企业管理有限公司,未经平安普惠企业管理有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011540536.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种仿古建筑物构件形状的灯座
- 下一篇:一种高速服务紧急救援服务车辆及系统