乐观锁和悲观锁

乐观锁和悲观锁的意思

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

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

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

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

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

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

悲观锁特点

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

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

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

相关推荐
鱼很腾apoc35 分钟前
【MySQL】 第1期 从核心概念到表约束全解析
linux·c语言·数据库·学习·mysql
斯内普吖2 小时前
(开源)校园充电宝租借管理系统实战指南 基于 Java + SSM + Vue + MySQL
java·vue.js·mysql·开源
啵啵啵鱼2 小时前
对数据的增删改查
数据库·mysql·ai·idea·ai编程·navicat·obsidian
靠沿2 小时前
MySQL数据库基础——索引的使用&alter、explain关键字
java·数据库·mysql
Mortalbreeze2 小时前
MySQL 基础篇(八):复合查询之多表查询、内外连接、子查询
数据库·mysql
Xxtaoaooo2 小时前
NocoDB在线表格数据库:fnOS部署、MySQL可视化与远程协作实操
数据库·mysql·docker·cpolar·nocodb
小白快快跑哦4 小时前
python-字符串全解(六):正则表达式-分组
python·mysql·正则表达式·分组
高级程序源12 小时前
django校园寻物通失物招领平台32261-计算机课程设计、毕业设计
vue.js·python·mysql·小程序·django·flask·课程设计
KIDULT°12 小时前
MySQL系列 (1):数据库原理
运维·数据库·mysql·云计算
牛战士coding13 小时前
MySQL 读写分离完整链路:主从复制、多数据源与 @DS 路由
数据库·mysql