提示:以下是本篇文章正文内容,下面案例可供参考

一、三个概念

1,脏读:
又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改但是还未提交,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改并提交,这就导致了T2所读取到的数据是无效的,值得注意的是,脏读一般是针对于update操作的。

2、不可重复读:
是指在数据库访问中,一个事务范围内两个相同的查询却返回了不同数据。在一个事务内,多次读同一个数据。在这个事务还没有结束时,另一个事务也访问该同一数据并修改数据。那么,在第一个事务的两次读数据之间。由于另一个事务的修改,那么第一个事务两次读到的数据可能不一样,这样就发生了在一个事务内两次读到的数据是不一样的,因此称为不可重复读,即原始读取不可重复。

3,幻读:
事务A 按照一定条件进行数据读取, 期间事务B 插入了相同搜索条件的新数据,事务A再次按照原先条件进行读取时,发现了事务B 新插入的数据称为幻读

二、mysql有四种隔离级别

  • 读未提交
  • 读已提交
  • 可重复读
  • 序列化

1、读未提交

  你在修改表中数据的时候,你可以看到另一个人没有提交的数据。这是一种安全级别最低的隔离级别,目前这种级别只是理论存在,因为目前基本没有数据库采用这种隔离方式,这种隔离级别会产生的问题就是脏读。

2、读已提交

  很好理解,假如此时,你和另外一个人同时操作同一张表,有一条数据是id为1 姓名为小明的数据,此时另外一个人对这个数据修改为id为2 姓名为小红(没有提交前),你再次查询得到的数据一直都是1 小明,而当这个人修改完后输入commit提交后,此时你在查询时,数据则会变为2 小红,这就是读已提交,意思其实和字面意思一样,只能读取当已提交的数据。这个隔离级别解决了脏读的问题,但是缺点就是不可重复读。

3、可重复读

  这是mysql的默认隔离级别,与第二种不同的是,此时如果和你操作一张表的另一个人commit后,你select查询后依旧是1 小明,只有当你自己commit之后,当前事务完全结束后,你才可以看到修改后的值,这种隔离级别解决了不可重复读的问题,但是出现了一种新的问题,就是幻读,什么是幻读呢?举个例子,当你查询某条数据时,可能显示的是1 小明,但是此时可能有个人正好修改好了这条数据,当你提交后再次查询时,你会发现变成了2 小红,这个时候你可能会觉得不对啊,刚才我刚查询的时候明明不是2 小红啊,明明是1小明啊,是我产生幻觉了吗?这就是幻读。

4、序列化

  最安全的默认隔离级别,但是并不支持并发,相当于单线程,不允许并发操作数据库,事务开启后,只允许一个人进行操作,直到提交后下一个人才可以进入。

三、事务

事务的四个性值:ACID(原子性,一致性,隔离性和持久性)

1、原子性:事务中包含有很多操作,这些操作要么全部执行,要么全部不执行,所以支持回滚操作。

2、一致性:系统从一种一致性到另一种一致性状态。事物的一致性决定了一个系统设计和实现的复杂度。事务可以具有不同程度的一致性。

强一致性:读操作可以立即读到操作的更新操作。

弱一致性:提交的更新操作不一定立即会被读操作读到,这种情况会存在一个不一致窗口,指的是读操作可以读到最新值的一段时间。

最终一致性:(弱一致性的一种特殊情况)最终所有的事务都会读到之前事务更新的最新值。

3、隔离性:有上面四种隔离性。

4、持久性:事务的操作对数据库的影响时持久的。

MySQL的四种隔离级别相关推荐

  1. 这一篇让你真正理解Mysql的四种隔离级别

    什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结束有 ...

  2. 真正理解 MySQL 的四种隔离级别

    什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结束有 ...

  3. mysql选择哪个隔离级别更好_深入理解Mysql的四种隔离级别

    一.首先什么是事务? 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事 ...

  4. 真正理解Mysql的四种隔离级别

    本文转自 https://www.jianshu.com/p/8d735db9c2c0 什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也 ...

  5. 深入理解MySQL的四种隔离级别

    深入理解MySQL的四种隔离级别[日期:2017-02-20] 来源:Linux社区 作者:Linux [字体:大 中 小]什么是事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个 ...

  6. 深入理解MySQL的四种隔离级别及加锁实现原理

    一.首先什么是事务? 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事 ...

  7. Mysql学习总结(58)——深入理解Mysql的四种隔离级别

    一.前言 开发工作中我们会使用到事务,那你们知道事务又分哪几种吗?MYSQL标准定义了4类隔离级别,用来限定事务内外的哪些改变是可见的,哪些是不可见的.低的隔离级一般支持更高的并发处理,并拥有更低的系 ...

  8. Mysql 的四种隔离级别

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

  9. MySQL 之 四种隔离级别

    一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...

最新文章

  1. 对抗神经网络,梦,潜意识
  2. 使用shell脚本完成自动化部署jar包
  3. python图像分类代码_python实现支持向量机遥感图像分类
  4. aws s3 cli_了解AWS CLI –使用AWS CLI与AWS S3存储桶进行交互
  5. 使用PaddlePaddle.org工具构建PaddlePaddle文档
  6. Go 将在下个版本支持新型排序算法:pdqsort
  7. 打印機lpt接口轉com接口
  8. Docker搭建内部知识库(Wiki)
  9. 明日之后在同一个服务器找不到人,明日之后怎么跨区加好友 看这里
  10. 抽象层 abstraction layer
  11. [游戏技术] Hunter Mode 猎人模式v1.8(重制版)
  12. c#数字验证码功能,以及判断用户输入是否正确。
  13. linux vi命令不能用,linux vi命令的使用方法
  14. 记小米路由器Pro(R3P)刷机openwrt、潘多拉、lean-openwrt、x-wrt
  15. 电商设计师(美工)必备的素材网站!
  16. 家用 NAS 服务器(1)| 配置选择及准备
  17. 基于Vue实现一个简易的小程序框架,浅谈kafka | 每日掘金第 194 期
  18. PC/SC标准读卡器,SCardConnect返回6处理,PCSC API函数写法
  19. 算法之最长公共子序列问题
  20. 赵钱孙李称体重,按照由大到小的顺序,打印出四人的姓氏的首字母和体重数(中间用空格隔开,每人一行)

热门文章

  1. Trixbox分机间的手工呼叫转移功能的使用
  2. 微信小程序 跳转小程序
  3. 微信小程序保存图片到系统相册
  4. 国家纪念日引起的一个css属性思考 ------ filter属性
  5. 【esp32-s3】8.1 I2C——光感BH1750
  6. PDF转PPT怎么转?好用的转换方法分享
  7. 学画画要花多少钱_高中学画画要花多少
  8. mc4 安卓x86_现代战争4:决战时刻 免谷歌版
  9. Discuz随机默认头像
  10. Python打包exe并不闪退