美文网首页
Mysql事务隔离级别

Mysql事务隔离级别

作者: growing_hawk | 来源:发表于2018-11-03 16:22 被阅读0次

一、事务的基本要素ACID

1. 原子性(Atomicity):事务开始后所有操作要么全部成功,要么全部失败;事务在执行过程中出错,会回滚到事务执行之前的状态,所有操作就像没有发生。

2. 一致性(Consistengcy):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。

3. 隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。

4. 持久性(Durability):事务完成后,事务对数据库的所有更新将被保存到数据库。


二、事务的并发问题

1. 脏读:事务A读取了事务B未提交的数据,事务B回滚,那么事务A读取到了脏数据

2. 不可重复读:事务A多次读取数据不一致,在事务A两次读取中间,事务B更新了数据并提交事务,导致事务A两次读取相同数据不一致

3. 幻读:事务A在两次读取数据过程间,事务B插入了新数据,导致事务A第二次读取的数据在第一次读取中是没有的(跟产生了幻觉一样)

4. 幻读是针对插入、删除操作的,重复读、不可重复读是针对更新操作的


三、事务隔离级别

1. 如果事务设置为read-uncommitted,即使事务没有提交,我们也可以读取到更新后的数据,造成脏读,这是事务隔离级别最低的一种。

2. 如果事务设置为read-committed,事务提交后才能读取到更新后的数据,未提交的事务数据读取不到,避免脏读;但是会造成事务在多次读取数据时的数据不一致,也就是不可重复读。

3. 如果事务设置为repeatable-read,当前事务可以重复读,每次都能读取到相同数据,但是当有别的事务插入新的行时,之前事务会读取到多余的行。

4. 如果事务设置为serializable,当前事务执行时会锁表,并将其他事务的会话挂起,这是事务隔离级别最高的一种,会对性能产生影响。

相关文章

  • 聊聊MySQL的隔离级别

    原文:聊聊MySQL的隔离级别 | MySQL隔离级别原理参考:oracle - mysql - 数据库事务隔离级...

  • mysql事务隔离级别的实现原理

    mysql事务隔离级别的实现原理 mysql innodb中的四种事务隔离级别[https://www.jians...

  • MySQL 事务隔离级别解析和实战

    MySQL 事务隔离级别解析和实战 1、MySQL 隔离界别查看 查看回话隔离级别 查看系统隔离级别 2、MySQ...

  • Mysql事务

    1) mysql事务的ACID特性 2)MySQL事务隔离级别

  • mysql隔离级别

    一、MySQL事务隔离级别 mysql默认的事务隔离级别为repeatable-read(可重复读) 1.未提交可...

  • Mac系统mysql设置事务隔离级别

    Mac系统mysql设置事务隔离级别 MySQL数据库事务隔离级别主要有四种: Serializable 串行化,...

  • 数据库事务相关

    事务隔离级别(tx_isolation)mysql 有四级事务隔离级别 每个级别都有字符或数字编号 级别symbo...

  • MYSQL事务

    常用语句 MYSQL事务,锁表 事务控制语句 事务的隔离级别 隔离级别描述产生风险READUNCOMMITTED ...

  • 面试官:说一下MySQL事务隔离级别?

    MySQL 事务隔离级别是为了解决并发事务互相干扰的问题的,MySQL 事务隔离级别总共有以下 4 种: READ...

  • mysql笔记

    mysql笔记 查看事务隔离级别 show variables like '%iso%'; 设置事务级别 mysq...

网友评论

      本文标题:Mysql事务隔离级别

      本文链接:https://www.haomeiwen.com/subject/grgkxqtx.html