首页 > 数据库技术 > 详细

Mysql 事务隔离级别

时间:2019-04-04 23:35:13      阅读:137      评论:0      收藏:0      [点我收藏+]

在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离级别。

一、事务的基本要素(ACID)

  1. 原子性(Atomicity);事务开始后所有操作,要么全部做完,要么全部不做,不能停滞在中间环节。
  2. 一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏。
  3. 隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。
  4. 持久性(Durability):事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。

二、事务的并发问题

  1. 脏读:事务B修改数据但未提交,事务A读数据,然后B回滚,则A读到的是脏数据。
  2. 不可重复读:事务A第一次读取数据,事务B修改数据提交,事务A第二次读数据,两次数据不一致。
  3. 幻读:事务A update表的全部行,事务B插入一行,事务A就会发现表中还有未修改的行。(一般加间隙锁)

三、MySQL事务隔离级别

事务隔离级别 脏读 不可重复读 幻读
读未提交 会 
读已提交 不会
可重复读 不会 不会
串行话 不会 不会 不会

查看mysql的默认事务隔离级别“show global variables like ‘tx_isolation’; ”

四、InnoDB 行锁模式

Innodb的行锁模式有以下几种:共享锁,排他锁,意向共享锁(表锁),意向排他锁(表锁),间隙锁。

Mysql 事务隔离级别

原文:https://www.cnblogs.com/chafanbusi/p/10657478.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!