mysql事务隔离级别回顾

Posted mryangbo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql事务隔离级别回顾相关的知识,希望对你有一定的参考价值。

事务隔离级别是针对读数据库数据的一种规则。事务隔离级别是数据库属性不是事务属性。

1.读未提交(read uncommited)

可以读到其他事务修改未提交的数据。(有 脏读,不可重复读,幻读)

事务A读到了事务B更新后但未提交的数据,然后事务B回滚,那么A刚才读到的数据就是脏数据,俗称脏读。

事务A读取两次,两次之间事务B更新了数据并提交,那么事务A前后读取的数据就会不一致,俗称不可重复读。

事务A更新一列然后查看,两次之间事务B插入了一条数据,那么事务A查看数据发现有未修改的一条记录,俗称幻读。

不可重复读现象和幻读现象类似。

2.读已提交(read commited)

只能读到其他事务操作已经提交的数据。事务内操作对其他事务不可见。(有 不可重复读,幻读)

该级别可以防止脏读,

3.可重复读(repeatable read)

事务A多次读取一条记录,期间有其他事务更新了该记录并提交,事务A前后读取的数据保持一致。(有 幻读)

4.串行化读(serialzable)

事务A读取数据的事务内,其他事务无法更新(新增、删除)表数据,避免幻读。

 

以上是关于mysql事务隔离级别回顾的主要内容,如果未能解决你的问题,请参考以下文章

MySQL事务隔离级别的实现原理

mysql 的事务隔离级别 及各个隔离级别应用场景,详细

如何更改mysql事务隔离级别

MySQL的默认事务隔离级别是?

MySQL专题 - 多版本并发控制 MVCC & read committed 隔离级别

MySQL 四种事务隔离级的说明