美文网首页
mysql乐观锁

mysql乐观锁

作者: 落雪无尘V | 来源:发表于2022-04-10 13:37 被阅读0次

排他锁:排他锁通过在事务中使用select ...for update语句来实现,排他锁会在当前行加一个行级锁,在释放锁(事务结束)之前其他事务不能再对该数据加锁,在并发的情况下,后执行的事务就会被堵塞,直到当前事务执行完成。(通过锁把并发改成了顺序执行)

对SELECT进行加锁的方式有两种,只有在事务之中才能生效,否则不会生效

SELECT ... LOCK IN SHARE MODE       #共享锁,其它事务可读,不可更新
SELECT ... FOR UPDATE               #排它锁,其它事务不可读写
begin;
select * from sms where id = 1 for update;
update sms set amount=150 where id =1;
commit;

乐观锁: 乐观锁是指在获取数据时候不加锁,乐观的认为操作不会有冲突,在update的时候再去检查冲突

begin;
select amount from sms where id=1; //查询结果amount为100
update sms set amount = 150 where id=1 and amount = 100;
commit;

若根据查询结果自增加或减少可使用以下语句

UPDATE sms SET amount = amount + 150 WHERE id = 1

————————————————
版权声明:本文为CSDN博主「踏着阳光」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35014708/article/details/103492537

相关文章

  • 秒杀随笔

    方法: mysql悲观锁 mysql乐观锁 PHP+redis分布式锁 PHP+redis乐观锁(redis wa...

  • 表锁和行锁

    MySQL中的锁总体可以分为悲观锁和乐观锁。悲观锁MySQL中有自带的锁。乐观锁需要自己写程序控制来实现乐观锁的功...

  • rails中乐观锁和悲观锁的使用

    MySQL乐观锁和悲观锁的介绍可以参考之前的一篇文章MySQL中的锁(行锁,表锁,乐观锁,悲观锁,共享锁,排他锁)...

  • 乐观锁和悲观锁

    参考来源 深入理解乐观锁与悲观锁 乐观锁的一种实现方式——CAS mysql乐观锁总结和实践 乐观锁和悲观锁 悲观...

  • MYSQL 悲观锁和乐观锁

    前文我们提到了表锁,行锁的这些概念,今天我们来谈谈mysql的悲观锁和乐观锁。何为乐观锁?顾名思义,乐观锁就是乐观...

  • 分布式锁

    1,MySQL 排他锁 2,mysql 乐观锁 3,zk getchild 的 create distrutbit...

  • 蚂蚁面试

    1、mysql乐观锁和悲观锁的区别? 乐观锁通过MVCC,版本实现,悲观锁select... for update...

  • mysql的悲观和乐观锁

    谈谈mysql的悲观和乐观锁 - 周伯通的麦田 - 博客园 悲观锁 select … for update 乐观锁...

  • mysql锁

    mysql锁 性能:乐观锁,悲观锁 操作类型:读锁,写锁,都属于悲观锁 操作粒度:行锁,表锁 乐观锁:一种思想,通...

  • mysql锁记录

    mysql锁 性能:乐观锁,悲观锁 操作类型:读锁,写锁,都属于悲观锁 操作粒度:行锁,表锁 乐观锁:一种思想,通...

网友评论

      本文标题:mysql乐观锁

      本文链接:https://www.haomeiwen.com/subject/gaevsrtx.html