原创 更新于 时间( 2019-02-28 10:54:17) ( 133) 次浏览 标签 :
导读

Mysql 事务隔离级别整理 ...

事务 就是一组 数据库操作,要么一起成功,如果有一环失败了,则整个动作都会回滚。事务是在引擎层实现的,Mysql支持多引擎,有的引擎不支持事务,MyISAM 不支持事务,InnDB支持事务 。

隔离级别

隔离级别和脏读等关系,就不展开了,直接一张图。 在这里插入图片描述

查看事务隔离级别:

<span># version <= 5.6
</span>
select @@tx_isolation;

<span># version = 5.7
</span>
show variables like 'transaction_isolation’;

事务隔离的实现

每个事务开始都会有各自的 read-view 回滚日志,而 一条记录在系统中可以出现多个版本 ,这就是 MVCC数据库多版本并发控制 ,系统会判断,事务不需要这些回滚日志,或者说,当系统里没有比这个回滚日志更早的 read-view 的时候,就会删除回滚日志 。

隔离级别和视图

  • 读未提交 :是直接返回记录上的最新值,没有视图的概念
  • 读已提交 :是在每个SQL 语句开始执行时候创建的
  • 可重复读 :视图 是在事务创建时候启动的,所以与事务抱持一致,一致性视图
  • 串形化 : 加锁避免并行访问
Leon0204

打杂后端程序猿~

讨论区

发表评论
昵称:
评论:
验证