美文网首页
事务隔离级别和幻读

事务隔离级别和幻读

作者: 西5d | 来源:发表于2018-03-15 21:49 被阅读141次

事务特性有ACID 原子性,一致性,隔离性,持久性四个,英文对应atomicity,consistency,isolation,durability。隔离性单独来说有读未提交,读已提交,可重复读,串行化。以上是概念总结,下面根据实例做些解释。Innodb默认事务隔离级别是可重复读,但可重复读会有幻读的情况出现,幻读其实相对比较难理解,以下通过一个简单例子来说明,例子按步骤执行。
首先,查看当前的事务隔离级别。
show variables like '%isolation%';

tx_isolation.png

事务1开启,并查询数据总数

tx11.png

事务2开启,并查询总数


tx21.png

事务2添加记录,并查询总数


tx22.png

事务1,查询总数,可以看到数据量没变,因为事务2没有提交,目前为止是正确的。


tx12.png
事务2提交
tx23.png

事务1,查看总数并更新记录,此处是重点,可以看到count(*) 查的记录和实际更新的记录对不上,count(*)操作像是出现幻觉。


tx13.png
以上可以很清楚的看到所谓幻读是怎么产生的,除了串行化可以避免幻读,后续会介绍在RR下幻读的预防原理。

相关文章

  • MySQL相关(一)——— 事务和锁

    事务的隔离级别和锁机制 【1】InnoDB 事务隔离级别和锁 【2】脏读、不可重复读、幻读 mysql 相关 常用...

  • mysql知识点总结

    mysql事务 什么是事务 事务的四大特性 事务的隔离级别 脏读,不可重复读,幻读分别是什么 隔离级别脏读不可重复...

  • mysql数据mvcc版本控制原理

    事务并发执行遇到的问题 脏读(未提交读) 不可重复读(已提交读) 幻读(读出新纪录) 事务隔离级别 隔离级别脏读不...

  • MYSQL默认事务隔离级别

    一、MYSQL四种事务隔离级别 事务隔离级别脏读不可重复读幻读读未提交(read-uncommitted)是是是读...

  • 事务隔离级别

    本文主要为了总结事务隔离级别的整体知识,包含模拟脏读、不可重复读和幻读的场景 1. 什么是事务隔离级别? 什么是事...

  • 事务隔离级别和幻读

    事务特性有ACID 原子性,一致性,隔离性,持久性四个,英文对应atomicity,consistency,iso...

  • 数据库事务隔离级别

    数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)

  • MySQL事务隔离级别

    [toc] 前言 这篇文章将会总结MySQL中的innodb的事务隔离级别,以及幻读、脏读、不可重复读。 事务隔离...

  • 2020-11-26 数据库的四种隔离级别

    隔离级别 隔离级别简述结果串行化如果两个事务操作同一个数据时,不会并发执行事务,事务会排队先后执行脏读×,幻读×,...

  • mysql锁以及事务隔离级别

    事务隔离级别 隔离级别脏读不可重复读幻读READ-UNCOMMITTED是是是READ-COMMITTED否是是R...

网友评论

      本文标题:事务隔离级别和幻读

      本文链接:https://www.haomeiwen.com/subject/zkdkqftx.html