一、首先介绍几个概念:

1,脏读:

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

2、不可重复读:

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

3,幻读:

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

不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表

二、四种隔离级别:

隔离级别 脏读 不可重复读 幻读
读未提交(read-uncommitted)
读提交(read-committed)
可重读(repeatable-read)
可串行化(serializable)

read-uncommitted 读未提交:

在该级别,所有的事务都可以看到其他未提交事务的执行结果,本隔离级别很少用于实际应用,因为它的性能不比其他级别好多少。读取未提交的数据,也称之为脏读。

read-committed 读提交内容:

这是大多数数据库系统的默认隔离级别(但不是MYSQL默认的),它满足了隔离的简单定义:一个事务只能看见已提交事务所做的改变。也支持所谓的不可重复读。

repeatable-read 可重读:

是MYSQL默认的,确保统一事务的多个实例在并发读取数据时,会看到同样的数据行。

serializable 可串行化:

这是最高的隔离级别,他通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简而言之,他是在每个读的数据行上加上共享锁。在这个级别可能导致大量的超时现象和锁竞争。

低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。

三、事务

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

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

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

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

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

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

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

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

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

  1. 数据库的四种隔离级别及对应解决的脏读、不可重复读、幻读问题

    数据库的四种隔离级别 数据库事务的隔离级别有4种,由低到高分别为Read uncommitted .Read committed .Repeatable read .Serializable .而且, ...

  2. 【数据库的四种隔离级别】

    在关系型数据库中,隔离级别是指多个事务并发执行时,彼此之间的隔离程度.数据库的四种隔离级别如下: 1.读未提交(Read Uncommitted): 最低级别的隔离级别,一个事务可以读取到另一个事务未 ...

  3. 数据库(Mysql)的四种隔离级别

    数据库事务的隔离级别有4种,由低到高分别为Read uncommitted .Read committed .Repeatable read .Serializable .而且,在事务的并发操作中可能 ...

  4. Mysql 8的四种隔离级别以及对应不同类型的锁

    文章目录 1. MySql 8的四个隔离级别 2. 不同类型的锁 3. 四个级别 对应的不同的锁 4. 如何测试每个隔离级别使用的什么锁? 5. 有关事务相关的文档内容总结 6. 什么情况下是行锁,什 ...

  5. MySQL常见的四种隔离级别!

    目录 1.什么是事务 2.事务的 ACID 3.Mysql的四种隔离级别 4.测试Mysql的隔离级别 1.什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所 ...

  6. 一文搞懂数据库的四种隔离级别(建议收藏)

    文章转载自老周聊架构,侵删!!! 一.什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全 ...

  7. MySQL事务的四种隔离级别,mysql中的不可重复读和幻读的区别,Repeatable read可重复读隔离级别下怎么不存在幻读问题?

    1. 事务的隔离级别 1.1 read uncommited:读未提交.一个事务读到了另一个事务未提交的脏数据,称之为脏读. 1.2 read commited:读已提交.解决了脏读问题,但当前事务两 ...

  8. mysql四种隔离级别

    前言: mysql 事务有四种隔离级别,分别是:读未提交READ UNCOMMITTED .读提交 READ COMMITTED.可重复读REPEATABLE READ.串行化SERIALIZABLE ...

  9. 数据库的脏读、不可重复读、幻读以及四种隔离级别

    一.数据库的脏读.不可重复读和幻读 1.脏读: (读取了未提交的新事物,然后被回滚了) 事务A读取了事务B中尚未提交的数据.如果事务B回滚,则A读取使用了错误的数据. 比如我给你转了100万,但是我还 ...

最新文章

  1. html5开发桌面界面设计,HTML5触摸界面设计与开发
  2. Windows 10 系统安装教程
  3. 对DNN的一些高层架构设想
  4. Vue:type check failed for prop “pageSize“. Expected Number with value xx 问题
  5. win10远程桌面出错
  6. 码破苍穹:空指针的传说
  7. java8新特性之stream
  8. 前端页面开发浅谈:PC 端设计如何“完美”迁移到移动端?
  9. nets_comment_class.py-网易单曲评论-music-163
  10. centos系统添加桌面图标
  11. 朋友圈文案_隐私条款
  12. 点云渲染的颗粒感和背景色相关
  13. 怎样提高英语思维能力?
  14. 线段树 (更新区间查询点)秋实大哥与小朋友
  15. IP第十天笔记 - - - BGP
  16. 楞严咒全文正确注音版_楞严咒全文注音
  17. 128.OpenLDA安装并配置客户端-1
  18. 正确的使用HTTP代理
  19. 线路板基础知识详细解析
  20. c语言队列初始化、入队、出队

热门文章

  1. Android MediaRecorder录像
  2. pdf文件的分割使用工具
  3. 华益血糖信息管理系统服务器,华益糖管家
  4. 把pdf转换成excel格式的方法
  5. 除了背八股文,Java面试更该这样准备
  6. 华为云计算之物理节点CNA安装教程
  7. Dapper 的输出参数使用示范
  8. nodejs+vue+elementui游戏新闻资讯网站管理系统
  9. win7 忘记mysql密码_win7系统下mysql数据库忘记root密码怎么解决
  10. C++ 实现二十六进制加法