php mysql隔离_mysql隔离级别有几种
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隔离级别有几种相关推荐
- linux新增mysql用户_MySQL创建用户的三种方法
前言:MySQL创建用户的方法分成三种:INSERT USER表的方法.CREATE USER的方法.GRANT的方法. 一.账号名称的构成方式 账号的组成方式:用户名+主机(所以可以出现重复的用户名 ...
- mysql针对单表设置隔离_mysql隔离级别表
隔离级别脏读(Dirty Read)不可重复读(NonRepeatable Read)幻读(Phantom Read)未提交读(Read uncommitted)可能可能可能 已提交读(Read co ...
- mysql 缓冲区_mysql 线程级别的缓冲区
线程栈信息使用内存(thread_stack) 主要用来存放每一个线程自身的标识信息,如线程id,线程运行时基本信息等等,我们可以通过 thread_stack 参数来设置为每一个线程栈分配多大的内存 ...
- mysql数据冗余_MySQL冗余数据的三种方案
一,为什么要冗余数据 互联网数据量很大的业务场景,往往数据库需要进行水平切分来降低单库数据量. 水平切分会有一个patition key,通过patition key的查询能够直接定位到库,但是非pa ...
- mysql 默认事务隔离级别_MySQL 事务隔离级别详解
个人公众号『码农札记』,欢迎关注,查看更多精彩文章. 简介: MySQL的事务隔离级别一共有四个,分别是读未提交.读已提交.可重复读以及可串行化. 四个特性ACID 原子性 (Atomicity) 事 ...
- mysql不可重复读和重复读_MySql隔离级别:RU / RC / RR / S + 脏读 / 不可重复读 / 幻读 / 可重复读...
MySQL 事务 本文所说的 MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的. 数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不 ...
- mysql innodb 默认隔离级别_MySQL Innodb 事务隔离级别
在Mysql中,事务主要有四种隔离级别,今天我们主要是通过示例来比较下,四种隔离级别实际在应用中,会出现什么样的对应现象. Read uncommitted (未提交读) Read committed ...
- mysql与spring隔离级别不同_mysql事务隔离级别与spring事务隔离级别的区别
mysql事务隔离级别与spring事务隔离级别的区别: 脏读:为什么会出现脏读,因为你对数据库的任何修改都会是立即生效的,至于别人能不能看到主要取决与你 是否加锁了,数据库的执行与事务没有关系,事务 ...
- mysql会话事务隔离_MySQL的事务隔离级别
MySQL的事务隔离级别 隔离级别 1.事务的隔离级别决定了事务之间可见的级别. 2.当多个客户端并发地访问同一个表时,可能出现下面的一致性问题: ● 脏读取(Dirty Read) 一个事务开始读取 ...
最新文章
- Scala Learn 1 Basic
- ubuntu 12.04 clang 3.4 安装
- Unity -- 材质-Material和预设体-Prefabs
- android java包_android SDk中常用的java包介绍
- tcpdump 抓取icmp数据包
- python爬虫的应用-python网络爬虫应用实战
- 解决gdb 调试 core 文件函数名显示为问号的问题
- 华南理工计算机网络随随堂,计算机组成原理-2019春华工网络教育随堂练习
- Spring Boot(三) 将war文件部署到tomcat 、 Thymeleaf示例
- HTC公布第二款区块链手机Exodus 1s:或将于9月前发售
- 线程之生产汽车与购买汽车
- 台式计算机如何联络无线网,台式电脑怎么无线上网
- python精确有理数实验_有理数类实验报告
- 合肥有哪些不错的 IT 公司?
- imx6 Android gpu 内存,Use vivante GPU on IMX6 with 4.14 kernel
- linux的重启ip失效,linux配置ip 重启出错解决方法
- GISer开发者的技能清单
- AGV导航磁条的导航方式有哪些?
- 计算机无法打开优盘,电脑插入u盘后打不开如何修复
- 暴雪战网下载各个版本与修改默认登陆地点方法
热门文章
- 【Matlab 图像】滤波器原理使用及测试效果
- 3.7 注意力模型直观理解-深度学习第五课《序列模型》-Stanford吴恩达教授
- 5.5 SVM补充-机器学习笔记-斯坦福吴恩达教授
- Verdi - GUI技能操作 Before you start (未完)
- 类和对象—对象特性—拷贝构造函数调用时期
- Android学习笔记:Activity-ListView
- 第1章 Qt概述和下载安装及创建工程
- Oracle将NetBeans交给了Apache基金会
- Java——容器(Comparable)
- Sublime Text 3 全套快捷键及功能介绍