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

已提交读(Read committed)不可能可能可能

可重复读(Repeatable read)不可能不可能可能

可串行化(Serializable )不可能不可能不可能脏读:一个事务读取到了另外一个事务没有提交的数据;

比如:事务T1更新了一行记录的内容,但是并没有提交所做的修改。事务T2读取到了T1更新后的行,然后T1执行回滚操作,取消了刚才所做的修改。现在T2所读取的行就无效了;

不可重复读:在同一事务中,两次读取同一数据,得到内容不同;

比如:事务T1读取一行记录,紧接着事务T2修改了T1刚才读取的那一行记录。然后T1又再次读取这行记录,发现与刚才读取的结果不同。这就称为“不可重复”读,因为T1原来读取的那行记录已经发生了变化;

幻读:同一事务中,用同样的操作读取两次,得到的记录数不相同;

比如:事务T1读取一条指定的WHERE子句所返回的结果集。然后事务T2新插入 一行记录,这行记录恰好可以满足T1所使用的查询条件中的WHERE子句的条件。然后T1又使用相同的查询再次对表进行检索,但是此时却看到了事务T2刚才插入的新行。这个新行就称为“幻像”,因为对T1来说这一行就像突然出现的一样。

隔离级别越低,事务请求的锁越少或保持锁的时间就越短。InnoDB存储引擎默认的支持隔离级别是REPEATABLE READ;在这种默认的事务隔离级别下已经能完全保证事务的隔离性要求,即达到SQL标准的SERIALIZABLE级别隔离。

我们可以可以用SET TRANSACTION语句改变单个会话或者所有新进连接的隔离级别。它的语法如下:SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}

注意:默认的行为(不带session和global)是为下一个(未开始)事务设置隔离级别。如果使用GLOBAL关键字,语句在全局对从那点开始创建的所有新连接(除了不存在的连接)设置默认事务级别。你需要SUPER权限来做这个。使用SESSION 关键字为将来在当前连接上执行的事务设置默认事务级别。 任何客户端都能自由改变会话隔离级别(甚至在事务的中间),或者为下一个事务设置隔离级别。mysql> set session transaction isolation level repeatable read;Query OK, 0 rows affected (0.00 sec)mysql> select @@tx_isolation;+-----------------+| @@tx_isolation  |+-----------------+| REPEATABLE-READ |+-----------------+1 row in set (0.00 sec)

原文:http://12173069.blog.51cto.com/12163069/1947969

mysql针对单表设置隔离_mysql隔离级别表相关推荐

  1. php mysql隔离_mysql隔离级别有几种

    mysql隔离级别有4种,分别是:1.Read Uncommitted(读取未提交内容):2.Read Committed(读取提交内容):3.Repeatable Read(可重读):4.Seria ...

  2. mysql 建表设置编码_mysql 建表字符集

    1.列出MYSQL支持的所有字符集: SHOW CHARACTER SET; 2.当前MYSQL服务器字符集设置 SHOW VARIABLES LIKE 'character_set_%'; 3.当前 ...

  3. mysql 连接查询两个条件_MySQL之多表查询一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习...

    一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 首先说一下,我们写项目一般都会建一个数据库,那数据库里面是不是存了好多张表啊,不可能把所有的数据都放到一张表里面,肯定要分表来存数据,这样节 ...

  4. mysql大表修改表名原理_MySQL修改大表工具pt-online-schema-change原理

    MySQL修改大表工具pt-online-schema-change的使用限制: 1).如果修改表有外键,除非使用 –alter-foreign-keys-method 指定特定的值,否则工具不予执行 ...

  5. mysql从多个表查询数据类型_MySQL 之 多表查询

    阅读目录 一.多表联合查询 #创建部门CREATE TABLE IF NOT EXISTSdept ( didint not null auto_increment PRIMARY KEY, dnam ...

  6. mysql连接多个存储存储_Mysql(三):多表查询和存储程序

    今天内容: ● 多表查询(内连接 外连接 子查询) ● 存储程序(存储过程 函数) 多表查询 ​同时从多张数据表中查取到需要的数据即是多表查询. 多表查询时,参与查询的表中每条数据进行组合,这种效果称 ...

  7. mysql常用表名大全_MySQL常用系统表大全

    MySQL5.7 默认的模式有:information_schema, 具有 61个表: m ysqL, 具有31个表: performance_schema,具有87个表; sys, 具有1个表, ...

  8. mysql 修改表结构方案_MySQL中修改表结构时需要注意的一些地方

    MySql 在修改表结构的时候可能会中断产品的正常运行影响用户体验,甚至更坏的结果,丢失数据.不是所有的数据库管理员.程序员.系统管理员都非常了解Mysql能避免这种情况.DBA会经常碰到这种生产中断 ...

  9. mysql多表查询临时表_MySQL 之多表查询

    阅读目录 一.多表联合查询 #创建部门CREATE TABLE IF NOT EXISTSdept ( didint not null auto_increment PRIMARY KEY, dnam ...

  10. mysql创建三张表的视图_mysql三张表连接建立视图

    三张表连接·· A表的a字段 对应 B表的b字段 ,B表的b1字段对应C 表的c字段 现在 建立 一个视图,可以同时 看到三张表的 所有信息·~ create or replace view v_na ...

最新文章

  1. python中全局变量和局部变量关键字_Python中全局变量和局部变量的理解与区别
  2. C/C++基础知识点(四)
  3. 小白的java学习之路 “ 选择结构(二)”
  4. 自动生成三层结构代码(3)--生成数据访问层Insert方法
  5. 前端开发-编辑器安装-HbuilderX安装过程与基本使用 0226
  6. SQLite数据库的特性
  7. spring3-mvc实例-信息转换
  8. 实习日志(1)2011-12-30
  9. ubuntu安装最新的rails-4.2.0
  10. c#asp.net添加/修改/删除Cookie值
  11. 【解决】Ubuntu安装NVIDIA驱动(咨询NVIDIA工程师的解决方案)
  12. mac nginx映射ip和端口_南京课工场IT培训:Nginx虚拟主机 (基于域名 基于端口 基于ip)...
  13. Swift翻译之-关于Swift
  14. CSS 常见布局 水平垂直居中对齐
  15. siri中文语音助理_智能语音应用在哪些场景?
  16. linux tac命令,Linux tac 命令 command not found tac 命令详解 tac 命令未找到 tac 命令安装 - CommandNotFound ⚡️ 坑否...
  17. 用Python代码刷王者金币
  18. 【附源码】Java计算机毕业设计架构的博客平台设计(程序+LW+部署)
  19. UnityShader学习教程之<详解uv坐标,c#类似uv坐标的值以及贴图操作>
  20. 黑五节日营销,Facebook广告投放指南

热门文章

  1. 基于SpringBoot vue的茶叶商城平台源码和论文含支付宝沙箱支付
  2. scratch贪吃蛇
  3. c语言double类型printf问题
  4. mysql模糊 精准查询_Mysql 精准查询与模糊查询【原创】
  5. b站视频上传软件操作介绍
  6. Python爬虫基础教程,详细讲解(含爬取文字为乱码解决办法、反爬虫机制解决办法)
  7. pacewear android wear,Pacewear Hype使用中的常见问题解答
  8. kengoro机器人哪儿有卖_【国际版】2019全明星机器人专题第五期,流汗机器人——Kengoro...
  9. 帝国cms后台登录用户名账号密码忘记了怎么重置找回?
  10. 怎么查看win服务器端口占用,Windows怎么查看端口占用?查看本机端口占用情况...