事务的四大ACID 属性:Atomicity 原子性、Consistency 一致性、Isolation 隔离性、Durability 持久性。

原子性: 事务是最小的执行单位不可分割,强调事务的不可分割
持久性: 事务执行前后,数据的完整性保持一致。
一致性: 一旦事务执行结束,数据就保存到数据库。
隔离性: 一个事务执行的前后不应该受到其他事务的干扰。

MySQL的事务隔离级别有四种:未提交读、已提交读、可重复读和串行化。

未提交读: 事务A可以读取到事务B还未提交的数据。比如事务B将小明的账户余额从100改到110,事务B还没提交,在这个隔离级别下事务A就读取到的数据就是110。如果说事务B回滚了,那数据库里小明的账户余额又变成100了,可是事务A返回的数据却是110。这就造成了脏读

已提交读: 事务A读取到数据是事务B提交后的数据,即一个事务提交后,其变更才会被另一个事务读取到。比如事务B将小明的账户余额从100改到110,事务B还没提交的时候,事务A读取到的数据仍然是100。因为在这个隔离级别下一个事务只能读取到另一个事务修改后且提交事务后的数据。但是这种情况会造成一个问题就是,事务A在事务B隐式提交数据后读取到的数据是110,这是没问题的,但是在事务A还没提交前,事务B又将小明的账户余额改为120并隐式提交,然后事务A再来读取的时候就读到了120,所以事务A的两次读取结果不一致。这就造成了不可重复读

可重复读: 事务A只能读到事务B修改的已提交了事务的数据,但是第一次读取的数据,即使别的事务修改了这个值,这个事务再读取这条数据的时候还是和第一次获取的一样,不会随着别的事务的修改而改变。这和已提交读的区别就在于,它重复读取的值是不变的。所以叫可重复读,很贴切的名字。拿刚才的例子就是,事务A在自己的事务里多次读取小明的账户余额时,如果第一次读取的是100,那么不管在这之后事务B对它进行如何的修改,对于事务A来说多次读取的结果都是100。可重复读解决了不可重复读(听起来像是废话),但是存在幻读的情况。
幻读:当事务A查询账户余额=100的客户个数时,假如返回的是1万,这时事务B将小明的账户余额由110改为100并提交事务,事务A再次查询账户余额=100的客户个数时返回的统计个数变成了1万零1。这就是幻读

幻读和不可重复读有区别。不可重复读侧重点在于读取同一条数据,数据被修改,如读小明的账户余额;幻读的侧重点在于新增或者删除 (数据条数变化),同样的条件两次查询记录数不一样。

串行化: 上面三个隔离级别对同一条记录的读和写都可以并发进行,但是串行化的隔离级别下就只能进行读-读并发。只要有一个事务操作一条记录的写,那么其他事务要读这条记录的事务都得等着。例如,事务B修改小明的账户还未提交前事务A来读,那么事务A就只能等着事务B提交之后才能读。

串行化的隔离级别一半没人用,因为性能比较低,常用的是已提交读和可重复读。
大多数数据库采用已提交读,MySQ的默认隔离级别是:可重复读。可以通过 select @@global.tx_isolation;来查看当前隔离级别。

✘不会造成 , ✔可能造成

事务隔离级别 脏读 不可重复读 幻读
未提交度
已提交读
可重复读
串行化

在?MySQL事务隔离级别了解一下?的更多相关文章

  1. [51CTO]新说MySQL事务隔离级别!

    新说MySQL事务隔离级别! 事务隔离级别这个问题,无论是校招还是社招,面试官都爱问!然而目前网上很多文章,说句实在话啊,我看了后我都怀疑作者弄懂没!本文所讲大部分内容,皆有官网作为佐证,因此对本文内 ...

  2. 查询mysql事务隔离级别

    查询mysql事务隔离级别 查询mysql事务隔离级别 分类: DB2011-11-26 13:12 2517人阅读 评论(0) 收藏 举报 mysqlsessionjava   1.查看当前会话隔离 ...

  3. MySQL事务隔离级别测试实例

    https://www.cnblogs.com/huanongying/p/7021555.html MySQL事务隔离级别 事务隔离级别 脏读 不可重复读 幻读 读未提交(read-uncommit ...

  4. Mysql事务-隔离级别

    MYSQL事务-隔离级别 事务是什么? 事务简言之就是一组SQL执行要么全部成功,要么全部失败.MYSQL的事务在存储引擎层实现. 事务都有ACID特性: 原子性(Atomicity):一个事务必须被 ...

  5. MySQL事务隔离级别 解决并发问题

    MySQL事务隔离级别 1. 脏读: 骗钱的手段, 两个窗口或线程分别调用数据库转账表,转账后未提交,对方查看到账后,rollback,实际钱没转. 演示方法: mysql默认的事务隔离级别为repe ...

  6. mysql事务隔离级别、脏读、幻读

    Mysql事务隔离级别本身很重要,再加上可能是因为各大公司面试必问的缘故,在博客中出现的概率非常高,但不幸的是,中国的技术博客要么是转载,要么是照抄,质量参差不齐,好多结论都是错的,对于心怀好奇之心想 ...

  7. mysql事务隔离级别与设置

    mysql数据库,当且仅当引擎是InnoDB,才支持事务: 1.隔离级别 事务的隔离级别分为:未提交读(read uncommitted).已提交读(read committed).可重复读(repe ...

  8. MySQL事务隔离级别(二)

    搞清楚MySQL事务隔离级别 首先创建一个表 account.创建表的过程略过(由于 InnoDB 存储引擎支持事务,所以将表的存储引擎设置为 InnoDB).表的结构如下: 为了说明问题,我们打开两 ...

  9. MySQL事务隔离级别(一)

    本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做 ...

  10. 面试突击61:说一下MySQL事务隔离级别?

    MySQL 事务隔离级别是为了解决并发事务互相干扰的问题的,MySQL 事务隔离级别总共有以下 4 种: READ UNCOMMITTED:读未提交. READ COMMITTED:读已提交. REP ...

随机推荐

  1. C# System.Threading.Timer的使用

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  2. Android Camera2 拍照(四)——对焦模式

    原文:Android Camera2 拍照(四)--对焦模式 本篇将重点介绍使用Camera2 API进行手动对焦的设置,以及在手动对焦与自动对焦模式之间切换. 一.手动对焦响应事件 首先我们要实现点 ...

  3. 图像滤镜艺术---Swirl滤镜

    原文:图像滤镜艺术---Swirl滤镜 Swirl Filter Swirl 滤镜是实现图像围绕中心点(cenX,cenY)扭曲旋转的效果,效果图如下: 原图 效果图 代码如下:         // ...

  4. 使用NAudio实现Wav转Mp3

    转换成MP3: using Microsoft.Win32; using NAudio.MediaFoundation; using NAudio.Wave; using System.Windows ...

  5. Android零基础入门第75节:Activity状态和生命周期方法

    前面两期我们学习了Activity的创建和注册.以及启动和关闭,也学会了重写onCraete方法,这些知识在实际开发中远远不够,还需要学习了解更多. 生命周期就是一个对象从创建到销毁的过程,每一个对象 ...

  6. windows 2003 无法安装 .net4.0 windows服务

    错误: InstallUtil.InstallLog文件中的错误信息:   正在运行事务处理安装.   正在开始安装的“安装”阶段. 查看日志文件的内容以获得 D:\Debug\DataChang.e ...

  7. Entity Framework的查询

    Entity Framework是个好东西,虽然没有Hibernate功能强大,但使用更简便.今天整理一下常见SQL如何用EF来表达,Func形式和Linq形式都会列出来(本人更喜欢Func形式). ...

  8. Delphi中文件流的使用方法

    在Delphi中,所有流对象的基类为TStream类, 其中定义了所有流的共同属性和方法.TStream类中定义的属性介绍如下: 1.Size: 此属性以字节返回流中数据大小. 2.Position: ...

  9. Ajax中post与get的区别

    get和post都是向服务器发送一种请求,只是发送机制不同 . 1. GET可以通过在请求URL上添加请求参数, 而POST请求则是作为HTTP消息的实体内容发送给WEB服务器. 2. get方式请求 ...

  10. Paragon NTFS for Mac 15.5.53 中文破解版(激活码)下载

    Paragon NTFS for Mac中文破解版是一款超级受欢迎的简单.高效.安全的格式读写软件,提供给大家,再也不用到处找Paragon NTFS序列号和Paragon NTFS激活码啦,帮您轻松 ...