乐观锁和悲观锁
来源:互联网 发布:java程序员需要学什么 编辑:程序博客网 时间:2024/04/30 09:18
悲观锁:固执地认为我操作这条数据的同时这条数据一定会被别人修改,所以我操作这条数据时先把数据锁定起来,不让别人修改。使用事务进行,select……for update锁定这条数据。
注:锁定时如果指定了主键,会执行Row lock (只锁住被选取的数据) ,否则MySQL 将会执行Table Lock (将整个数据表单给锁住)。
注:要使用悲观锁,我们必须关闭mysql数据库的自动提交属性,因为MySQL默认使用autocommit模式,也就是说,当你执行一个更新操作后,MySQL会立刻将结果进行提交。
注:需要注意的是,在事务中,只有SELECT … FOR UPDATE 或LOCK IN SHARE MODE 同一笔数据时会等待其它事务结束后才执行,一般SELECT … 则不受此影响。
乐观锁:并不认为我操作这条数据时别人也会操作,所以我们先给这条数据加一个版本号(可以为一个updatetime字段),查询当前数据的updatetime,去更新当前的updatetime所在的这一条数据,如果没有更新成功,则重新执行。
阅读全文
0 0
- 悲观和乐观锁
- 乐观锁和悲观锁
- 悲观锁和乐观锁
- 乐观锁和悲观锁
- 乐观锁和悲观锁
- 悲观锁和乐观锁
- 乐观锁和悲观锁
- 悲观锁和乐观锁
- 悲观锁和乐观锁
- 悲观锁和乐观锁
- 悲观锁和乐观锁
- 乐观锁和悲观锁
- 乐观锁 和 悲观锁
- 悲观锁和乐观锁
- 乐观锁和悲观锁
- 乐观锁和悲观锁
- 乐观锁和悲观锁
- 乐观锁和悲观锁
- 国内用cnpm安装更新element-ui有很多不明错误,该怎样解决
- JavaScript 获取标签对象,创建标签对象
- Java
- 357. Count Numbers with Unique Digits
- 常用命令
- 乐观锁和悲观锁
- String、StringBuffer、StringBuilder
- long long 与int的区别
- 【转载】Jlink工具下的RTT调试应用
- gradle仓库配置
- char(10)和VARCHAR(10)主要的区别是什么?
- log4cxx配置文件(log4cxx.properties文件)详解 --调整日志输出级别
- AccessibilityService怎么与Activity通信(持续通信)?
- LeetCode 334. Increasing Triplet Subsequence