mysql隔离级别有4种,分别是:1、Read Uncommitted(读取未提交内容);2、Read Committed(读取提交内容);3、Repeatable Read(可重读);4、Serializable(可串行化)。

(推荐教程:mysql教程)

Mysql的四种隔离级别

SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。

1、Read Uncommitted(读取未提交内容)

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

2、Read Committed(读取提交内容)

这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。

它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别 也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。

3、Repeatable Read(可重读)

这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。

不过理论上,这会导致另一个棘手的问题:幻读 (Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。

InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)机制解决了该问题。

4、Serializable(可串行化)

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

问题

这四种隔离级别采取不同的锁类型来实现,若读取的是同一个数据的话,就容易发生问题。例如:

1、脏读(Drity Read):

某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。

2、不可重复读(Non-repeatable read):

在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。

3、幻读(Phantom Read):

在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的。

php mysql隔离_mysql隔离级别有几种相关推荐

  1. linux新增mysql用户_MySQL创建用户的三种方法

    前言:MySQL创建用户的方法分成三种:INSERT USER表的方法.CREATE USER的方法.GRANT的方法. 一.账号名称的构成方式 账号的组成方式:用户名+主机(所以可以出现重复的用户名 ...

  2. mysql针对单表设置隔离_mysql隔离级别表

    隔离级别脏读(Dirty Read)不可重复读(NonRepeatable Read)幻读(Phantom Read)未提交读(Read uncommitted)可能可能可能 已提交读(Read co ...

  3. mysql 缓冲区_mysql 线程级别的缓冲区

    线程栈信息使用内存(thread_stack) 主要用来存放每一个线程自身的标识信息,如线程id,线程运行时基本信息等等,我们可以通过 thread_stack 参数来设置为每一个线程栈分配多大的内存 ...

  4. mysql数据冗余_MySQL冗余数据的三种方案

    一,为什么要冗余数据 互联网数据量很大的业务场景,往往数据库需要进行水平切分来降低单库数据量. 水平切分会有一个patition key,通过patition key的查询能够直接定位到库,但是非pa ...

  5. mysql 默认事务隔离级别_MySQL 事务隔离级别详解

    个人公众号『码农札记』,欢迎关注,查看更多精彩文章. 简介: MySQL的事务隔离级别一共有四个,分别是读未提交.读已提交.可重复读以及可串行化. 四个特性ACID 原子性 (Atomicity) 事 ...

  6. mysql不可重复读和重复读_MySql隔离级别:RU / RC / RR / S + 脏读 / 不可重复读 / 幻读 / 可重复读...

    MySQL 事务 本文所说的 MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的. 数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不 ...

  7. mysql innodb 默认隔离级别_MySQL Innodb 事务隔离级别

    在Mysql中,事务主要有四种隔离级别,今天我们主要是通过示例来比较下,四种隔离级别实际在应用中,会出现什么样的对应现象. Read uncommitted (未提交读) Read committed ...

  8. mysql与spring隔离级别不同_mysql事务隔离级别与spring事务隔离级别的区别

    mysql事务隔离级别与spring事务隔离级别的区别: 脏读:为什么会出现脏读,因为你对数据库的任何修改都会是立即生效的,至于别人能不能看到主要取决与你 是否加锁了,数据库的执行与事务没有关系,事务 ...

  9. mysql会话事务隔离_MySQL的事务隔离级别

    MySQL的事务隔离级别 隔离级别 1.事务的隔离级别决定了事务之间可见的级别. 2.当多个客户端并发地访问同一个表时,可能出现下面的一致性问题: ● 脏读取(Dirty Read) 一个事务开始读取 ...

最新文章

  1. Scala Learn 1 Basic
  2. ubuntu 12.04 clang 3.4 安装
  3. Unity -- 材质-Material和预设体-Prefabs
  4. android java包_android SDk中常用的java包介绍
  5. tcpdump 抓取icmp数据包
  6. python爬虫的应用-python网络爬虫应用实战
  7. 解决gdb 调试 core 文件函数名显示为问号的问题
  8. 华南理工计算机网络随随堂,计算机组成原理-2019春华工网络教育随堂练习
  9. Spring Boot(三) 将war文件部署到tomcat 、 Thymeleaf示例
  10. HTC公布第二款区块链手机Exodus 1s:或将于9月前发售
  11. 线程之生产汽车与购买汽车
  12. 台式计算机如何联络无线网,台式电脑怎么无线上网
  13. python精确有理数实验_有理数类实验报告
  14. 合肥有哪些不错的 IT 公司?
  15. imx6 Android gpu 内存,Use vivante GPU on IMX6 with 4.14 kernel
  16. linux的重启ip失效,linux配置ip 重启出错解决方法
  17. GISer开发者的技能清单
  18. AGV导航磁条的导航方式有哪些?
  19. 计算机无法打开优盘,电脑插入u盘后打不开如何修复
  20. 暴雪战网下载各个版本与修改默认登陆地点方法

热门文章

  1. 【Matlab 图像】滤波器原理使用及测试效果
  2. 3.7 注意力模型直观理解-深度学习第五课《序列模型》-Stanford吴恩达教授
  3. 5.5 SVM补充-机器学习笔记-斯坦福吴恩达教授
  4. Verdi - GUI技能操作 Before you start (未完)
  5. 类和对象—对象特性—拷贝构造函数调用时期
  6. Android学习笔记:Activity-ListView
  7. 第1章 Qt概述和下载安装及创建工程
  8. Oracle将NetBeans交给了Apache基金会
  9. Java——容器(Comparable)
  10. Sublime Text 3 全套快捷键及功能介绍