资讯专栏INFORMATION COLUMN

事务的四大特性和隔离级别

DandJ / 985人阅读

摘要:二数据库中事务的有四大特性原子性,或称不可分割性将事务中进行的操作捆绑成一个不可分割的单元。隔离性,又称独立性一个事务的执行,不被其他事务干扰。三事务的隔离级别。可串行化提供严格的隔离级别,要求事务一个个的执行。

一.什么是事务
定义:数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
本质:由一个或多个sql语句组成。这些sql语句在执行过程中被当作一个整体,要么全部的sql语句执行成功,要么全部失败。不存在一部分执行成功,一部分执行失败。

二.数据库中事务的有四大特性(ACID)
(1)原子性(Atomic,或称不可分割性)
将事务中进行的操作捆绑成一个不可分割的单元。事务中进行的数据操作,要么全部失败,要么全部成功。
(2)一致性(Consistency)、
事务完成时,所有数据保持一致状态。
(3)隔离性(Isolation,又称独立性)
一个事务的执行,不被其他事务干扰。即一个事务内部的操作和并发的其他事务是互相隔离的。
(4)持久性(Durability)
一个事务完成后,对数据库的修改时永久的。其他操作和故障都不会对其有任何影响

在实际应用中,多个用户同时操作相同的数据时,可能会产生并发问题。
1)脏读 :一个事务读取了另一个事务未提交的数据。
2)不可重复读:一个事务对同一行数据读取两次,但得到的数据不同。
3)幻读/虚读:一个事务执行两次查询,但是第二次查询中包含了第一次查询时未出现的数据。

三.事务的隔离级别。
1)Read Uncommitted (读未提交)
如果一个事务A已经开始写数据,则另一个事务B不允许写操作。但是可以读取这个事务A修改但未提交的数据,会造成脏读。
2) Read Committed (读已提交)
事务A只能读取事务B修改并且提交后的数据行,禁止访问事务B处于写状态的数据行。可以避免脏读。
3)Repeatable Read(可重复读取)
事务A在读取数据行时,禁止其他事务对该数据行进行更改,但是可以进行读取操作。进行写操作时,禁止其他事务的任何操作。可以防止脏读和不可重复读。
4) Serializable (可串行化)
提供严格的隔离级别,要求事务一个个的执行。不能并发执行。有效的防止脏读,不可重复读,幻读。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/35378.html

相关文章

  • 事务四大特性隔离级别

    摘要:二数据库中事务的有四大特性原子性,或称不可分割性将事务中进行的操作捆绑成一个不可分割的单元。隔离性,又称独立性一个事务的执行,不被其他事务干扰。三事务的隔离级别。可串行化提供严格的隔离级别,要求事务一个个的执行。 一.什么是事务定义:数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。本质:由一个或多个sql语句组成。这些sql语句在执行过程中被当作一个整体,要么全部的sq...

    Reducto 评论0 收藏0
  • 事务隔离

    摘要:若则,若,则,他们的和在事务结束前后必须是一致的。本人以笔记总结为主,简单概述了事务的四大特性及事务的隔离级别。 一.前言   事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,数据库能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。  在深入了解今天的主题之前,需要了解事务的有哪些特...

    spademan 评论0 收藏0
  • MySQL事务总结

    摘要:什么是事务事务是访问和更新数据库的程序执行单元事务中可能包含一个或多个语句,这些语句要么都执行,要么都不执行。 什么是事务 事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个 sql 语句,这些语句要么都执行,要么都不执行。 事务四大特性 原子性:事务是原子性操作,要么全部成功,要么全部失败 一致性:多个事务对数据库操作会保证数据一致性 隔离性:...

    oujie 评论0 收藏0
  • 『浅入深出』MySQL 中事务实现

    摘要:当事务已经被提交之后,就无法再次回滚了,唯一能够撤回已经提交的事务的方式就是创建一个相反的事务对原操作进行补偿,这也是事务持久性的体现之一。 在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务具有 ACID 四个基本属性,而我们不知道的可能就是数据库是如何实现这四个属性的;在这篇文章中,我们将对事务的实现进行分析,尝试理解数据库是如何实现事务的,当然我们也会在文...

    CodeSheep 评论0 收藏0
  • 03.MySQL数据库事务隔离级别

    摘要:当数据库上有多个事务同时执行的时候,就可能出现脏读不可重复读幻读的问题,为了解决这些问题,就有了隔离级别的概念。若隔离级别是读提交,则是,的值是。我们可以看到在不同的隔离级别下,数据库行为是有所不同的。 事务 就是要保证一组数据库操作,要么全部成功,要么全部失败。 在MySQL中,事务支持是在引擎层实现的 MySQL是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如MySQL原...

    ethernet 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<