MySQL二十二:事务ACID原则

要么都成功,要么都失败

事务ACID原则: 原子性、一致性、独立性、持久性

  • A(Atomicity)原子性

​ 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。

​ 比如银行转账,从A账户转100元至B账户,分为两个步骤:(1)从A账户取100元;(2)存入100元至B账户

这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。

  • C(Consistency)一致性

    一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。

    例如现有完整性约束a + b = 10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a + b = 10,否则事务失败。

  • I(Isolation)独立性(隔离性)

​ 所谓的独立性是指并发(多个用户同时操作)的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。

​ 比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。

  • D(Durability)持久性

    持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。


隔离所导致的一些问题:

脏读:

指一个事务读取另外一个事务未提交的数据.

不可重复读:

在一个事务内读取表中的某一行数据,多次读取结果不同.(这个不一定是错误,只是某些场合不对).

虚读(幻读):

是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致.

什么是事务ACID原则?(建议收藏)相关推荐

  1. 数据库事务ACID原则学习分享

    本人结合自己对技术的理解,努力以通俗易懂的内容帮助大家了解技术的基本原理,内容仅供参考,不对或不完善的地方请大家指教,感谢关注! 一.事务概念的引入 当今,信息化技术非常发达的时代,我们通过手机上的银 ...

  2. 数据库事务ACID原则

    数据库事务正确执行的四个原则:A原子性.C一致性.I独立性.D持久性 (1)原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节.事务在执行过程中发生错误,会被回滚到事 ...

  3. 连续模料带形式、功能与系料设计原则,建议收藏!

    连续模料带形式.功能与系料设计原则 连续模料带设计主要是将冲压制品连结在料带上,以等距离送料的方式将半成品送至各工程站上冲压,将冲压制品连结在料带上有许多种方式,连结方式也需要依据冲压制品特征与冲压方 ...

  4. 面试过程中如何回答面试官的问题,才能让你顺利拿到Offer?冰河想以经典的事务问题对你说这些!!(建议收藏)

    大家好,我是冰河~~ 相信大部分小伙伴在面试过程中,只会针对面试官提出的表面问题来进行回答.其实不然,面试官问的每一个问题都是经过深思熟虑的,面试的时间相对来说也是短暂的,面试官不可能在很短的时间内就 ...

  5. 分布式数据库理论知识之CAP理论、ACID原则及分布式事务一致性算法

    1 CAP理论 分布式数据库的设计遵循CAP理论,即一个分布式系统不能同时满足Consistency(一致性).Availability(可用性)和Partition Tolerance(分区容忍性) ...

  6. Spring——事务注解@Transactional【建议收藏】

    在某些业务场景下,如果一个请求中,需要同时写入多张表的数据或者执行多条sql,为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到事务:Spring框架下,我们经 ...

  7. 分布式事务选型的取舍 | 建议收藏

    点击上方"朱小厮的博客",选择"设为星标" 回复"1024"获取独家整理的学习资料 微服务兴起的这几年涌现出不少分布式事务框架,比如Byte ...

  8. 【MySQL进阶】MySQL事务隔离与锁机制底层原理万字总结(建议收藏!!)

    [MySQL进阶]MySQL事务隔离与锁机制底层原理万字总结(建议收藏!!) 参考资料: 美团技术团队:Innodb中事务隔离级别和锁的关系 数据库的锁,到底锁的是什么? 阿里面试:说说一致性读实现原 ...

  9. MySQL事务篇:ACID原则、事务隔离级别及事务机制原理剖析

    引言 众所周知,MySQL数据库的核心功能就是存储数据,通常是整个业务系统中最重要的一层,可谓是整个系统的"大本营",因此只要MySQL存在些许隐患问题,对于整个系统而言都是致命的 ...

最新文章

  1. GitHub 热榜:来膜拜这个流弊的 AI 框架!
  2. XAML实例教程系列 - 命名空间(NameSpace)
  3. 【报告】一手资料:四线城市移动互联网用户调研
  4. java安卓写文件路径,如何使用gradle作为构建系统,平台Android配置Protobuf(Java)文件的输出路径?...
  5. CTF-Bugku逆向题Android方法归纳
  6. 对No Starch Press出版的《Python Playground》一书的书评及其作者访谈录
  7. 不实例化图片,获取图片宽高的方法(vb.net)
  8. Flex Application初始化顺序
  9. bzoj 5094: 硬盘检测(概率)
  10. mimics软件临床应用.计算机辅助外科入门技术,Mimics软件临床应用:计算机辅助外科入门技术...
  11. Fortinet:网络安全越来越勤快,可甲方却应该越来越「懒」
  12. Android 磁场传感器 地磁倾角计算 SensorManager.getInclination方法
  13. spring boot 2.5.5 reference chapter 5 生词
  14. ubuntu16 环境配置
  15. java 点击屏幕_JAVA+Appium 自动化实现手机屏幕滑动点击操作
  16. 03. 交换机的Telnet远程登陆配置
  17. 前端JavaScript代码混淆加密原理介绍
  18. U811.1接口EAI系列之二--生成销售出库单调用U8的EAI通用处理方法--PowerBuilder语言...
  19. SpringBoot 全局配置和静态资源配置
  20. 云南旅游之瑞丽,束河,丽江古城

热门文章

  1. .net ServiceStack.Redis 性能调优
  2. BASE64学习小记
  3. 全新防火墙6.0 单条PPPOE(ADSL)上网配置
  4. 服务器更换主板后系统无法启动
  5. n3k配置vpc是否还需要配置hsrp_VPC配置案例
  6. 【Oracle】to_char技巧
  7. textarea的maxlength属性兼容解决方案
  8. 缓存穿透、缓存雪崩、缓存击穿的原因及解决方案
  9. 解决无法连接mysql问题
  10. VM虚拟机打开其中一个vmx文件没反应问题解决