我们仍然先准备好students表的数据:
然后 , 分别开启两个MySQL客户端连接,按顺序依次执行事务A和事务B:
事务B在第3步第一次读取id=99的记录时,读到的记录为空,说明不存在id=99的记录 。随后,事务A在第4步插入了一条id=99的记录并提交 。事务B在第6步再次读取id=99的记录时,读到的记录仍然为空,但是,事务B在第7步试图更新这条不存在的记录时,竟然成功了,并且,事务B在第8步再次读取id=99的记录时,记录出现了 。
可见,幻读就是没有读到的记录,以为不存在,但其实是可以更新成功的,并且,更新成功后,再次读取,就出现了 。
在冲突较少的情况下,使用乐观锁 。乐观锁 因为没有 加锁 释放锁,也减少了 加锁 释放锁的开销 。
冲突较多时,如果使用乐观锁 需要不停地尝试,所以 使用悲观锁 。
如果乐观锁 进行尝试时 的花销较大,也是使用悲观锁 。
mysql乐观锁怎么开的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于360借条平台是合法的吗、mysql乐观锁怎么开的信息别忘了在本站进行查找喔 。
推荐阅读
- b站服务器阴阳师,b站阴阳师是渠道服吗
- c语言ato函数,c语言atoi函数
- python爬虫书籍知乎,python3爬虫书籍推荐
- 玩游戏切换桌面卡死不动,游戏切换桌面有卡顿
- 安卓手机怎么选向日葵录屏,手机向日葵录像文件放哪里
- 抖音上团餐如何推广的,抖音餐饮团购效果如何
- linux怎么分区命令,linux分区命令有哪些
- go语言的基本语法 go语言的基本类型
- linux解析路径命令行,linux 获取当前路径