day90 下单 事务中隔离级别带来的问题

事务中隔离级别带来的问题

read uncommitted --->不做任何隔离,具有脏读,不可重复读,幻读等问题

read committed ---->可以防止脏读,不能防止不可重复读,幻读等问题

repeatable read ---->可以防止脏读,不可重复读,不能防止幻读(mysql默认的隔离级别)

serializable ---> 都可以防止

脏读

一个事务能读取到另一个事务还未提交的数据

age=16

a---->18 (把16改成18 但是没有提交),但是a 回滚了

b---->读取的时候 age=18 然后做了业务操作 一旦a回滚了业务就有问题了

不可重复读

一个事务读取到另一个事务已经提交的数据

age=16

a--->18 把16改成了18 并提交

b--->当a 提交后 b是能读取到18的

幻读

一个事务读取到另外一个事务新增或删除的数据

修改mysql的隔离级别

mysql的配置文件

修改:set @@global.tx_isolation='read-committed';

查看:SELECT @@global.tx_isolation;

乐观锁/悲观锁

乐观锁

他不是锁,他觉得数据是安全的,没有数据和我抢,但是最后做校验

查询 age=16 条件是 where id=1

age=16+1

update where id=1 and age=16 update age=17

悲观锁

他就是锁 他的态度是悲观的 我觉得有人会动数据 所以在查询的时候就锁起来

select age from user where id=1 for update

User.object.select_for_update(id=1).first()

posted @   风啊风啊  阅读(136)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示