《MySQL学习》 事务隔离

《MySQL学习》 事务隔离

一.事务的概念

事务保证一组数据要么全部成功要么全部失败,MySQL的事务基于引擎(如InnoDB)实现。

二.事务的隔离性与隔离级别

MySQL的标准隔离级别:

  1. 读未提交 : 一个事务还没提交时,它做的变更就能被别的事务看到
  2. 读已提交 : 一个事务提交之后,它做的变更才会被其他事务看到。
  3. 可重复读 : 一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。
  4. 串行化 : 是对于同一行记录,“写”会加“写锁”,“读”会加“读锁”。当出现读写锁冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行

注意 : MySQL 默认的隔离级别是可重复读,而Oracle是读已提交

MySQL实现不同的隔离级别是基于MVCC,在不同的时机快照读创建视图(区别于MySQL 的 view 视图)。

  1. 读未提交(RU)没有视图概念
  2. 在(RC)读已提交的隔离级别下,会在每个语句执行前创建视图(而不是事务开始时),因此是可以读到事务提交前其他事务已经提交的数据
  3. 在(RR)可重复读的隔离级别下,会在执行第一条select语句时创建视图,直到事务提交,因此只能读到事务开始前其他事务已经提交的数据,当前事务前后读取到的数据都是一致的
  4. 串行化(SC)则是通过加锁

三.事务隔离的实现

在 MySQL 中,实际上每条记录在更新的时候都会同时记录一条回滚操作。记录上的最新值,通过回滚操作,都可以得到前一个状态的值。 redo log (重做日志)记录变更记录,由 undo log 记录回滚日志

在查询这条记录的时候,不同时刻启动的事务会有不同的 read-view。如图中看到的,在视图 A、B、C 里面,这一个记录的值分别是 1、2、4,同一条记录在系统中可以存在多个版本,就是数据库的多版本并发控制(MVCC)

回滚日志不会一直保留,一个事务对应一个视图,有的事务还对应undolog,当对应undolog的事务之前的事务都提交了,对应的视图也也跟随删除了,则当前事务提交时,视图删除,undolog也将删除

全部评论
很清晰,很喜欢
点赞 回复 分享
发布于 2023-02-11 17:39 江苏
有你是我的福气
点赞 回复 分享
发布于 2023-02-11 17:18 山东

相关推荐

点赞 评论 收藏
分享
03-06 20:09
贵州大学 Java
King987:你这个学历找个中大厂刷实习经历都是可以的,但是项目要有亮点才行,这个什么外卖就不要做了,去找找最新的项目,至少涉及高并发或者是新型的AI技术mcp rag啥的 ,我在出简历点评,但是你这个没什么好点评的,内容太少,而且含金量太低。自己改一改吧,或者看一下我的项目地址中,那里有大厂最近做过的实习项目
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
8880次浏览 81人参与
# 你的实习产出是真实的还是包装的? #
1659次浏览 40人参与
# 米连集团26产品管培生项目 #
5573次浏览 214人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7358次浏览 40人参与
# 重来一次,我还会选择这个专业吗 #
433282次浏览 3926人参与
# 简历第一个项目做什么 #
31486次浏览 326人参与
# 巨人网络春招 #
11296次浏览 223人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186851次浏览 1118人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152256次浏览 887人参与
# 研究所笔面经互助 #
118841次浏览 577人参与
# 简历中的项目经历要怎么写? #
309928次浏览 4186人参与
# 面试紧张时你会有什么表现? #
30468次浏览 188人参与
# 你今年的平均薪资是多少? #
212968次浏览 1039人参与
# AI时代,哪些岗位最容易被淘汰 #
63273次浏览 795人参与
# 我的求职精神状态 #
447952次浏览 3128人参与
# 你最满意的offer薪资是哪家公司? #
76404次浏览 374人参与
# 高学历就一定能找到好工作吗? #
64288次浏览 620人参与
# 牛客AI文生图 #
21398次浏览 238人参与
# 你怎么看待AI面试 #
179765次浏览 1227人参与
# 正在春招的你,也参与了去年秋招吗? #
363143次浏览 2635人参与
# 腾讯音乐求职进展汇总 #
160549次浏览 1109人参与
# 职能管理面试记录 #
10794次浏览 59人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务