四种事务隔离级别

面试白话文,事务隔离级别

事务具有原子性、一致性、隔离型、持久性。

使用Mysql数据库说明事务隔离级别:

  mysql支持事务的常用引擎是InnoDB

  mysql默认事务隔离级别可重复读(REPEATABLE-READ):使用show variables like ‘tx_isolation‘ 查看

  注:以下第二个事务,处于开启,未提交状态。

  第一种:读未提交(read uncommitted)

      第一个事务未提交更新的数据,第二个事务可以读到,这是读未提交。

      第一个事务未提交更新的数据回滚,第二个事务读到回滚的数据,这是脏读。

      故读未提交,可能会出现脏读。

  

  第二种:读已提交(read committed),也称不可重复读

      第一个事务未提交更新的数据,第二个事务读不到;

      第一个事务提交更新的数据,第二个事务可以读到;这是读已提交。

      第一个事务提交更新小明同学年龄12岁,第二个事务读到小明12岁;

      第三个事务再次提交更新小明同学年龄14岁,第二个事务再读到小明14岁;这是不可重复读(同一个事务内读取的数据结果不一致)。

      故读已提交,会出现不可重复读(同一个事务内读取的数据结果不一致),不可重复读也会造成幻读(同一个事务内读取的数据结果不一致)。

  第三种:可重复读(repeatable read),mysql默认事务隔离级别

      第一个事务提交更新小明同学年龄12岁,第二个事务读到小明12岁;

      第三个事务再次提交更新小明同学年龄14岁,第二个事务再读到小明12岁;这是可重复读(同一个事务内读取的数据结果一致)。

      第四个事务提交插入同学小马数据记录,第二个事务再读不仅读到小明12岁数据,还会读到小马同学数据,这是幻读。

      故可重复读,会出现幻读(同一个事务内读取的数据结果不一致)。

  第四种:串行化(serializable)

      隔离级别最高,解决了脏读、不可重复无、幻读问题。

      同一个事务内,不管读取多少次,结果集永远一致。

原文地址:https://www.cnblogs.com/zwcry/p/12048493.html

时间: 2024-10-04 22:58:59

四种事务隔离级别的相关文章

数据库四种事务隔离级别详解

四种数据库隔离级别如下所示: 1.READ-UNCOMMITTED(读取未提交内容) 由于在该隔离级别下即使事务未提交所做的修改也会对其他事务产生影响.所以该级别会出现数据脏读的发生.脏读:一个事务读取了另一个未提交的并行事务写的数据. 举例:老板给员工发工资,老板开启事务,然后想员工的账户转钱10000元.此时员工开启事务,查看账户余额发现多了10000元,然后提交事务.但是老板发现转多了,于是修改为转5000元,然后提交事务.最终员工账户多5000元而不是10000元,所以之前员工看到的10

MySQL的四种事务隔离级别

一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样.也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位. 2.一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 .比如A向B转账,不可能A扣了钱,B却没收到. 3.隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不

MySQL的四种事务隔离级别【转】

本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样.也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位.  2.一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 .比如A向B转账,不可能A扣了钱

mysql MySQL的四种事务隔离级别

一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样.也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位.  2.一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 .比如A向B转账,不可能A扣了钱,B却没收到. 3.隔离性(Isolation):同一时间,只允许一个事务请求同一数据,

MySQL四种事务隔离级别

一.事务(Transaction)的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样.也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位. 2.一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 .比如A向B转账,不可能A扣了钱,B却没收到. 3.隔离性(Isolation):同一时间,只允

30秒读懂mysql四种事务隔离级别

一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样.也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位.  2.一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 .比如A向B转账,不可能A扣了钱,B却没收到. 3.隔离性(Isolation):同一时间,只允许一个事务请求同一数据,

Mysql InnoDB的四个事务隔离级别和(分别逐级解决的问题)脏读,不可重复读,虚读

MySqlInnoDB的事务隔离级别有四个:(默认是可重复读repeatable read) 未提交读 read uncommit : 在另一个事务修改了数据,但尚未提交,在本事务中SELECT语句可能会查询到这些未被提交的数据,而发生脏读. 提交读 read commit : 在一个事务中发生两次SELECT查询,当第一次SELECT执行完查询到一些数据,接下来另一个事务修改了这些数据并提交了,当第二次SELECT执行的时候查询到的数据和第一次SELECT的不同,而发生不可重复读.幻读问题,但

脏读|不可重复度|幻读的理解以及Spring定义的五种事务隔离级别

在Spring中定义了5中不同的事务隔离级别. 1. ISOLATION_DEFAULT(一般情况下使用这种配置既可) 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别. 2. ISOLATION_READ_UNCOMMITTED 这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据.这种隔离级别会产生脏读,不可重复读和幻像读. (大部分数据库缺省的事物隔离级别都不会出现这种状况) 3. ISOLATION_READ_CO

Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别

转: http://blog.csdn.net/it_man/article/details/5074371 Spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource.TransactionManager和代理机制这三部分,无论哪