乐观锁和悲观锁

乐观锁和悲观锁的意思

同一时间并发对同一个数据对象进行更新的问题,叫做丢失更新

乐观锁操作方法是在数据后面加一个version字段,当需要更新的时候,先查出version的值,更新的时候where条件判断version是否改变,如果没改变,说明没有冲突

悲观锁是在mysql事务基础上,在select sql后面加一个for update,确保锁住当前行

要使用悲观锁,必须关闭mysql数据库的自动提交属性,因为MySQL默认使用autocommit模式,也就是当你执行一个更新操作后,MySQL会立即将结果进行提交

共享锁,事务中给语句后面添加 lock in share mode

排它锁,事务中给语句添加 for update

悲观锁特点

为数据处理的安全提供了保证

效率上,由于处理加锁的机制会让数据库产生额外开销,增加产生死锁机会

在只读型事务中由于不会产生冲突,也没必要使用锁,这样会增加系统负载,降低并行性

相关推荐
灯澜忆梦40 分钟前
【MySQL12】进阶篇 | SQL优化
数据库·sql·mysql·性能优化
东方护航数据恢复(深圳)8 小时前
MySQL_Oracle数据库崩溃修复全攻略_东方护航数据恢复深圳店
数据库·mysql·oracle
ruleslol10 小时前
index merge避免回表
mysql
北风toto11 小时前
MySQL 批量随机化主键 ID,如何同步更新关联子表?
数据库·mysql
2501_9378609412 小时前
MySQL CRUD 增删改查
数据库·mysql
竹枝溪12 小时前
MySQL数据库零基础入门
数据库·sql·mysql·navicat·ddl·dml·dql
lsylalalala14 小时前
mysql-索引1
数据库·mysql
2501_9378609416 小时前
MySQL表的操作:创建、查看、修改、删除完整实战
android·数据库·mysql
奇特認20 小时前
mysql 集群技术 3.高可用之 MHA
数据库·mysql
Blossom i1 天前
大数据预处理与采集实验一:使用Python操作MySQL数据库
数据库·mysql