数据库悲观锁和乐观锁的原理和应用场景【面试题详解】

今天爱分享给大家带来数据库悲观锁和乐观锁的原理和应用场景【面试题详解】,希望能够帮助到大家。

悲观锁,先获取锁,再进行业务操作,一般就是利用类似 SELECT … FOR UPDATE 这样的语句,对数据加锁,避免其他事务意外修改数据。
当数据库执行select … for update时会获取被select中的数据行的行锁,select for update获取的行锁会在当前事务结束时自动释放,因此必须在事务中使用。

乐观锁则与,先进行业务操作,只在最后实际更新数据时进行检查数据是否被更新过。Java 并发包中的 AtomicFieldUpdater 类似,也是利用 CAS 机制,并不会对数据加锁,而是通过对比数据的时间戳或者版本号,来实现乐观锁需要的版本判断。

人已赞赏
数据库

innodb为什么要用自增id作为主键【面试题详解】

2020-11-9 11:11:18

数据库

索引是什么?MySQL为什么使用B+树?B+树的特点【面试题详解】

2020-11-9 11:24:15

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
'); })();