乐观锁和悲观锁

乐观锁和悲观锁的意思

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

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

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

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

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

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

悲观锁特点

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

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

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

相关推荐
五岳4 小时前
分库分表数据源ShardingSphereDataSource的Connection元数据误用问题分析
java·mysql·爬坑
悄悄敲敲敲4 小时前
MySQL表的约束
数据库·mysql
九皇叔叔4 小时前
MySQL 数据库 Read View 详解
数据库·mysql·mvcc·read view
神秘面具男037 小时前
MySQL 从基础到实践
数据库·mysql
2301_767902648 小时前
MySQL 入门
数据库·mysql
7ioik9 小时前
说一说MySQL数据库基本架构?
数据库·mysql·架构
东东的脑洞9 小时前
【面试突击】MySQL 查询优化核心面试知识点
mysql·面试·职场和发展
-dcr10 小时前
45.MySQL
mysql
大学生资源网10 小时前
基于Javaweb技术的宠物用品商城的设计与实现(源码+文档)
java·mysql·毕业设计·源码·springboot
小无名呀10 小时前
视图(View)
数据库·mysql