mysql中Sequence实现

本文探讨了在MySQL数据库中模拟Sequence的几种方法,包括不加锁的简单实现、悲观锁、乐观锁策略,以及通过多条记录分散并发和终极实现——不加锁且保证唯一性的方案。这些方法针对不同并发场景,权衡了性能和数据一致性。
摘要由CSDN通过智能技术生成

最近需要将项目从DB2数据库迁移到MySQL数据库,由于MySQL没有sequence,于是上网找了下MySQL的sequence实现,基本都是基于存储过程和函数实现的,下面第一、二两种实现是从网上看到的,三、四、五三种实现是自己的想法。第五种终极实现亲测可行,但是没有经过高并发检验。

1、创建表用于存储当前序列值
CREATE TABLE `TBL_SEQUENCE_1` (
    `sequence_name`  varchar(64) NOT NULL COMMENT '序列名称' ,
    `value`  bigint NOT NULL DEFAULT 0 COMMENT '当前值' ,
    PRIMARY KEY (`sequence_name`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
;
第一种实现,不加锁,高并发下可能返回重复值
DELIMITER //
CREATE 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值