背景
生成唯一订单号是在设计系统时候经常会遇到的一个问题,生成唯一订单号的方法有很多,为了适应不同的场景和性能,选择的方法也会不一样,有些复杂的系统会有多套这种唯一编码生成方式 。
利用数据库自增序列
利用数据库自增序列a站邀请码生成器,比如新建一张表,专门插入数据,获取新增记录的主键值,为了订单号的可读性,可以由年月日+时间戳+auto_increment值,这种方式能保证唯一性、递增性,实现也较为简单a站邀请码生成器,缺点就是每次都要连接数据库,插入一条数据来获取自增主键,性能较差,且后续有数据合并场景 , 订单号可能会重复 。
redis代替数据库生成ID
利用Redis的原子操作 INCR和INCRBY来实现 , 这个自增值也是唯一的,性能要优于数据库 。
UUID
可以利用数据库,也可以利用代码生成,全球唯一,性能较高 , 生成的一坨字符串 , 可读性较差,字符串一般32位,也有48位的,存储空间较大 , 作为主键索引查询较慢,但后续如果有合并数据需求,很方便,因为每次生成的都是全球唯一的 。
雪花算法
由twitter提出,代码生成,性能较高,此算法弥补了UUID的不足,它是单调递增的,可包含一定的业务意义 , 有序的ID能够提高数据库写入性能 。
业务常见的唯一编码有这些 , 没有最好的,根据业务场景选择适用的就行 。
【怎么生成唯一的订单号】本文到此结束,希望对大家有所帮助!
猜你喜欢
- 有多少人是全款买房的?
- 浅析个人住房贷款担保方式,你了解多少?
- 如何养护好绿萝,答案全在这里!懂得方法和掌握技巧才是关键!
- EPIC官网打不开、官网进不去、官网加载不出解决办法
- 公积金贷款买房能贷多少钱?
- 抵押贷款中介存在有什么意义?怎么降低房屋房产利率?提高额度?
- 五一抢票的成功率高吗 五一抢票如何提供成功几率
- 离职证明没那么简单
- 养花种菜的优质营养土比植物还贵,何不自己配制种植土?
