乐观锁和悲观锁

乐观锁和悲观锁的意思

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

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

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

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

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

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

悲观锁特点

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

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

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

相关推荐
猿月亮3 分钟前
MySQL5.7安装图文详细步骤(保姆级教程)-mysql5.7下载安装
mysql·adb
JuneXcy1 小时前
第9章 关系模式的规范化设计理论
数据库·mysql
懈尘2 小时前
【实战分享】智慧养老系统核心模块设计 —— 健康监测与自动紧急呼叫
java·后端·websocket·mysql·springboot·livekit
tongxh4232 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
qq_150841992 小时前
CVI+MySQL编程入门之用户管理
mysql
正在走向自律2 小时前
电科金仓MySQL迁移实战:一个技术专家的深度踩坑与突围笔记
数据库·mysql·电科金仓·kfs·kdts
泯仲3 小时前
从零起步学习MySQL 第二章:DDL语句定义及常见用法示例
数据库·mysql
Leon-Ning Liu3 小时前
记录MySQL 主从架构切换双主(互为主从)操作步骤
数据库·mysql
前进的李工3 小时前
数据库视图:数据安全与权限管理利器
开发语言·数据库·mysql·navicat
程序员这么可爱4 小时前
MySQL分页踩坑实录:LIMIT分页出现重复数据,同一主键ID跨页重复完美解决
数据库·mysql·limit分页重复·sql分页优化·数据库踩坑·主键排序规范