mysql如何加乐观锁_MySQL数据库之数据库乐观锁的两种实现方式介绍

本文详细介绍了MySQL数据库中的乐观锁概念及其两种实现方式:基于版本号的乐观锁和CAS(Compare And Swap)操作。通过示例说明了如何在并发场景下避免数据冲突,确保数据完整性。
摘要由CSDN通过智能技术生成

本文主要向大家介绍了MySQL数据库之数据库乐观锁的两种实现方式介绍 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

f00c17fb311ba8047b587b2b224788d6.png

什么场景下需要使用锁?

在多节点部署或者多线程执行时,同一个时间可能有多个线程更新相同数据,产生冲突,这就是并发问题。这样的情况下会出现以下问题:

更新丢失:一个事务更新数据后,被另一个更新数据的事务覆盖。

脏读:一个事务读取另一个事物为提交的数据,即为脏读。

其次还有幻读。。

针对并发引入并发控制机制,即加锁。

加锁的目的是在同一个时间只有一个事务在更新数据,通过锁独占数据的修改权。

锁的实现方式

1、悲观锁,前提是,一定会有并发抢占资源,强行独占资源,在整个数据处理过程中,将数据处于锁定状态。

2、乐观锁,前提是,不会发生并发抢占资源,只有在提交操作的时候检查是否违反数据完整性。只能防止脏读后数据的提交,不能解决脏读。

当然,还有其他的锁机制,暂时不多介绍,着重于乐观锁的实现。

乐观锁,使用版本标识来确定读到的数据与提交时的数据是否一致。提交后修改版本标识,不一致时可以采取丢弃和再次尝试的策略。

记录1,id,status1,status2,sta

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值