[MySQL] 有没有解决幻读问题
2023-02-18 15:41:28 时间
默认隔离级别下 , mysql没有解决幻读问题 , 需要应用代码里加一个锁来解决
幻读问题是啥?
默认的隔离级别是可重复读 REPEATABLE-READ , 在这个模式下出现幻读的例子一般是这两种情况:
事务1和事务2同时 , 事务1读数据 , 事务2插入数据提交 , 事务1插入同样的数据时报错说已经重复了 , 我明明刚才查的时候没有 , 为啥报重复了?
事务1和事务2同时 , 事务1读数据 , 事务2插入数据提交 , 事务1更新数据可以把事务2的数据也一块给更了 , 明明刚才没有怎么突然多出来数据了?
解决方式是在select读时候的sql中增加for update , 会把我所查到的数据锁住 , 别的事务根本插不进去 , 这样就解决了,这里用到的是mysql的next-key locks
相关文章
- asp.net signalR 专题—— 第一篇 你需要好好掌握的实时通讯利器
- Linq专题之提高编码效率—— 第三篇 你需要知道的枚举类
- Linq专题之提高编码效率—— 第二篇 神一样的匿名类型
- Linq专题之提高编码效率—— 第一篇 Aggregate方法
- 15天玩转redis —— 第十一篇 让你彻底了解RDB存储结构
- 15天玩转redis —— 第十篇 对快照模式的深入分析
- 15天玩转redis —— 第九篇 发布/订阅模式
- 15天玩转redis —— 第八篇 你不得不会的事务玩法
- 15天玩转redis —— 第七篇 同事的一次缓存操作引起对慢查询的认识
- 15天玩转redis —— 第六篇 有序集合类型
- 15天玩转redis —— 第五篇 集合对象类型
- 15天玩转redis —— 第四篇 哈希对象类型
- 15天玩转redis —— 第三篇 无敌的列表类型
- 15天玩转redis —— 第二篇 基础的字符串类型
- 15天玩转redis —— 第一篇 开始入手
- 十五天精通WCF——终结篇 那些你需要注意的坑
- 十五天精通WCF——第十四天 一起聊聊FaultException
- 十五天精通WCF——第十三天 用WCF来玩Rest
- 十五天精通WCF——第十二天 说说wcf中的那几种序列化
- 十五天精通WCF——第十一天 如何对wcf进行全程监控