Mysql的乐观锁悲观锁

乐观锁认为一般情况下数据不会发生冲突,一般会在数据提交更新的时候去做校验。
一般再操作的表上加一个version字段,每次更新对应的version+1,
先查询version,然后做修改的时候跟version做比对,如果不相等说明数据被修改了,当前操作不能成功。
1。查询

select (status,status,version) from t_goods where id=#{id}

2修改并验证是否冲突

update t_goods set status=2,version=version+1 where id=#{id} and version=#{version};

悲观锁
使用的是行级锁,统一时间只有一个线程能对这条数据修改,知道commit之后别人才能修改。
一般语句:select * from 表 where id=#{id} for update

原创文章 41 获赞 11 访问量 1500

猜你喜欢

转载自blog.csdn.net/weixin_44038332/article/details/105140331