mysql事务四个特性-事务的四个隔离级别

willem_chen willem_chen     2022-12-04     460

关键词:

一、事务四大属性

  • 原子性
  • 一致性
  • 隔离性
  • 持久性

1、原子性(Atomicity)

原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。

2、一致性(Consistency)

一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

举例:

假设用户A和用户B两者的钱加起来一共是1000,那么不管A和B之间如何转账、转几次账,事务结束后两个用户的钱相加起来应该还得是1000,这就是事务的一致性。

3、隔离性(Isolation)

隔离性是当多个用户并发访问数据库时,比如同时操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

关于事务的隔离性数据库提供了多种隔离级别,稍后会介绍到。

4、持久性(Durability)

持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

例如我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们程序执行完成直到看到提示后,就可以认定事务已经正确提交,即使这时候数据库出现了问题,也必须要将我们的事务完全执行完成。

否则的话就会造成我们虽然看到提示事务处理完毕,但是数据库因为故障而没有执行事务的重大错误。这是不允许的。

二、事务的隔离级别

在这里插入图片描述

1、脏读

事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据

2、不可重复读

事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

3、幻读

系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。

小结:

不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表。

1)Read Uncommitted(读未提交)

一个事务在执行过程中,既可以访问其他事务未提交的新插入的数据,又可以访问未提交的修改数据。如果一个事务已经开始写数据,则另外一个事务不允许同时进行写操作,但允许其他事务读此行数据。此隔离级别可防止丢失更新。

2)Read Committed(读已提交)

一个事务在执行过程中,既可以访问其他事务成功提交的新插入的数据,又可以访问成功修改的数据。读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。此隔离级别可有效防止脏读。

3)Repeatable Read(可重复读取)

一个事务在执行过程中,可以访问其他事务成功提交的新插入的数据,但不可以访问成功修改的数据。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。此隔离级别可有效防止不可重复读和脏读。

4)Serializable(可串行化)

提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地执行,不能并发执行。此隔离级别可有效防止脏读、不可重复读和幻读。但这个级别可能导致大量的超时现象和锁竞争,在实际应用中很少使用。

mysql的事务四个特性以及事务的四个隔离级别(代码片段)

一、事务四大属性分别是原子性、一致性、隔离性、持久性。1、原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能... 查看详情

mysql的事务四个特性以及事务的四个隔离级别

...A分别是原子性、一致性、隔离性、持久性。原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性是指事务... 查看详情

mysql四种隔离级别

 事务的四个特征(ACID)事务具有四个特征:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性简称为ACID特性。1、原子性。事务是数据库的逻辑工作单位,事务中包含的各操作要... 查看详情

图解mysql事务的四个隔离级别(代码片段)

什么是隔离级别说到隔离级别,就要先谈到事务,因为隔离级别是基于事务而存在的,事务事务指的是多个数据同时修改时,要么一起成功,要么一起失败。事务就像是小时候玩超级玛丽一样,你每次过关... 查看详情

图解mysql事务的四个隔离级别(代码片段)

什么是隔离级别说到隔离级别,就要先谈到事务,因为隔离级别是基于事务而存在的,事务事务指的是多个数据同时修改时,要么一起成功,要么一起失败。事务就像是小时候玩超级玛丽一样,你每次过关... 查看详情

数据库事务的四大特性及事务隔离级别

概要:事务的四个特性:原子性、一致性、隔离性、持久性事务不隔离带来的问题:脏读、不可重复读、虚读(幻读)事务隔离的级别:串行化(111)、可重复读(110)、读已提交(100)、读未提交(000) 1、事务四个特性... 查看详情

mysql事物四大特性和事物的四个隔离

1、事物四大特性(ACID)原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的... 查看详情

数据库事务的四个隔离级别,mysql在哪一个级别

...的作用是用来平衡数据库并发访问与数据一致性的方法。事务的4种隔离级别READUNCOMMITTED   未提交读,可以读取未提交的数据。READCOMMITTED    已提交读,对于锁定读(selectwithforupdate或者forshare)、update和delet... 查看详情

事务的四个特性

...,要么失败。只要有一个指令失败,那么就回滚一致性:事务在执行过程中的状态,对于其他事务是不可见的。因为中间的状态他是不一致的https://www.cnblogs.com/jkwll/p/11520989.html隔离性:事务之间是隔离的,例如一个表,只能同时... 查看详情

事务隔离级别

一、事务1、定义事务是一组原子性的SQL查询。如果数据库引擎能够成功的对数据库应用该组查询的全部语句,那么就执行该组查询;如果其中有任意一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是... 查看详情

sqlserver的四个事务隔离级别到底怎么理解?(代码片段)

...事在有关SQLSERVER的各种参考资料中,经常会看到如下四种事务隔离级别。READUNCOMMITTEDREADCOMMITTEDSERIALIZABLEREPEATABLEREAD随之而来的是大量的文字解释,还会附带各种脏读,幻读,不可重复读常常会把初学者弄得晕头转向,其实事务的本... 查看详情

数据库事务的四个隔离级别,mysql在哪一个级别

为了给程序配置资源隔离,通常我们会到cgroup层级树下的控制器⾥,创建或者修改控制组⽂件。 修改方法有两种方法可以对配置了systemd的程序进行资源隔离:1.命令行修改:通过执行 systemctlset-property 命令实... 查看详情

事务与mysql隔离级别(代码片段)

事务定义:比如ABCD四个业务,作为一个事务,他们要么一起都执行完毕,要么都不执行。(只要有一个不成功,那么所有的都不可以成功)四个特性ACID原子性(Atomicity)整个事务中的所有操作,要么全都完成,要么全部不完成。事务... 查看详情

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

文章目录一、什么是事务的隔离级别二、再看可重复读原理锁定读(当前读)一致性非锁定读(快照读)隐式锁定(两阶段锁)显式锁定三、总结一、什么是事务的隔离级别在数据库系统中,一个事务是指:由一系列数据库操作... 查看详情

数据库事务隔离级别一般用哪个

...想读、不可重复读和脏读都允许。一个会话可以读取其他事务未提交的更新结果,如果这个事务最后以回滚结束,这时的读取结果就可能是不正确的,所以多数的数据库都不会运用这种隔离级别。参考技术A数据库事务的四个隔... 查看详情

数据库的四种隔离级别

 一、事务的概念   一个事务中的一系列的操作要么全部成功,要么一个都不做。   事务的结束有两种,当事务中的所有步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消... 查看详情

事务隔离级别

事务具有四个特征:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性简称为ACID特性。 1、原子性 事务是数据库的逻辑工作单位,事务中包括的各操作要么都做。要么都不做&... 查看详情

mysql事物隔离级别rr还是rc好

数据库事务的四个隔离级别,mysql在哪一个级别mysql的innodb引擎对四个隔离级别都支持,默认是RepeatedRead。参考技术A1.数据库事务ACID特性数据库事务的4个特性:原子性(Atomic):事务中的多个操作,不可分割,要么都成功,要么都失... 查看详情