MySQL的四个隔离级别是如何实现的

2021/7/29 2:37:39

本文主要是介绍MySQL的四个隔离级别是如何实现的,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 读未提交

  • 所有的读不加锁,读到的数据都是最新的数据,性能最好
  • 所有的写加行级锁,写完就立即释放,不等事务结束

2. 读已提交

  • 使用的是MVCC技术
  • 写操作:加行级锁,事务开始后,会添加一条undo记录。数据行的隐藏列有指向undo记录的指针
  • 读操作:不加锁,在读取时,如果该行被其他事务锁定,则顺着隐藏列上undo指针,找到上一个有效的历史记录。(有效记录:该记录对当前事务可见,且DELETE_BIT=0)

3. 可重复读

  • 也是使用MVCC技术,读写操作跟上面几乎一样
  • 区别是读已提交每次读都生成最新的read view,而可重复读只在事务第一次提交的时候生成read view,之后再读到还是用之前的read view(此方法还能解决幻读)

4. 串行化

  • 所有的读写都加锁


这篇关于MySQL的四个隔离级别是如何实现的的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程