事务

1. 事务的基本概念

数据库事务是构成单一逻辑工作单元的操作集合

事务是一组操作的结合,是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销请求,即这些操作要么同时成功,要么同时失败

begin ; start transaction;       -- 开启事务
update account set money = money + 100 where name = '张三';
commit;     -- 提交
rollback;   -- 回滚
  1. 数据库事务可以包含一个或多个数据库操作,但是这些操作构成一个逻辑上的整体。
  2. 构成逻辑整体的这些数据库操作,要么全部执行,要么全部不执行。
  3. 构成事务的所有操作,要么全都对数据库产生影响,要么全都不产生影响。
  4. 在数据库出现故障时依然成立。

2. 事务的四大特性

  • A : 原子性

事务是不可分割的最小操作单元,要么全部执行成功,要么全部失败。

  • C :一致性

事务完成时,必须使所有的数据都保持一致状态,即数据库从一个一致状态到另一个一致状态。

  • 一致性状态满足数据的完整性约束,系统的状态反应数据库本应描述的现实世界的真实状态,比如转账前后两个账户的总金额不变。
  • I :隔离性

数据库系统需要提供隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。假如同时有多个事务并发执行,执行的结果应当同顺序执行一样。

  • D : 持久性

事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。

3. MySQL四大特性如何保证

  1. 原子性:如果事务中所有的操作均成功,那么会将表信息更改;如果事务中至少有一条操作不成功,在没有提交事务之前,mysql会先将数据更新到undo log中,假设最终因为某条操作不成功而发生了事务的回滚,会从undo log中取出数据对数据库中的数据进行回退。
  • undo log日志:撤销回退日志,主要用来存储数据库更新之前的数据,用作备份
  1. 一致性: 事务的一致性可能遭到的破坏主要有两方面

    • 事务的并发执行
    • 事务故障或系统故障

    解决方法是使用并发控制技术和日志恢复技术。

  1. 隔离性:并发控制技术(乐观锁,悲观锁)
    每一行记录数据都有多个版本的快照数据,这些数据都存放在undo log中

    当一个事务读取正在更新或删除的数据时,会读取到该数据的快照版本。

  1. 持久性:由于日志恢复技术可以在数据库发生崩溃时数据不会丢失,保证了事务的完整性
    innodb中的redo log可以保证持久性,MySQL先将磁盘上的数据加载到内存中,在内存中对数据进行修改,再写回磁盘上,如果此时宕机,内存中的数据就会丢失

使用redo log来解决此问题,在对数据库中的数据进行修改时,不仅会在内存中操作,还会记录在redo log中,当数据库内存中的数据丢失时,会将redo log中的内容恢复到数据库中。

事务四大特性如何保证相关推荐

  1. 事务四大特性及隔离级别

    事务四大特性及隔离级别 咱们都知道事务有四大特性ACID,也就原子性(atomicity|ætəˈmɪsəti|). 一致性(consistency).隔离性(isolation|aɪsəˈleɪʃn ...

  2. 事务四大特性(ACID)

    事务四大特性(ACID) (1)原子性(Atomic) ​ 指事务是一个不可分割的工作单位(像原子一样),事务中的操作要么都发生,要么都不发生.实现事务的原子性,要支持回滚操作,在某个操作失败后,回滚 ...

  3. 事务概念和事务四大特性和隔离级别

    什么是事务 事务四大特性 原生的JDBC事务处理 事务的隔离级别

  4. ACDI事务四大特性以及事务的隔离级别

    目录: 一:ACDI事务四大特性 二:事务的隔离级别 Read uncommitted(读未提交) Read committed(读并提交) Repeatable read(重复读) Serializ ...

  5. 事务四大特性之——隔离性

    事务四大特性之--隔离性 四大特性 一.4种隔离级别 二.案例 2.1 模拟业务需求 2.2 解决方案 且夫孝始于事亲,中于事君,终于立身. 孝的初始境界是侍奉自己的双亲,中层境界是侍奉自己的国君,最 ...

  6. mysql事务四个特性_关系型数据库mysql事务四大特性

    关系型数据库mysql 事务四大特性 一.首先我们先说一下什么是事务 在mysql中对数据进行增删改查中的任何一次操作的过程都可以被认为是一次事务,事务是一系列严密的操作,事务的结束有两种结果,当事务 ...

  7. 数据库事务 四大特性

    数据库事务四大特性(ACID) 敲黑板,这是重点,记下来!!会考到 转载连接:https://www.cnblogs.com/fjdingsd/p/5273008.html ⑴ 原子性(Atomici ...

  8. ACID(事务四大特性)

    事务四大特性(ACID): 原子性(Atomicity):化学中的原子指不可再分的基本微粒,数据库中原子性强调事务是一个不可分割的整体,事务开始后所有操作要么全部成功,要么全部失败,不可能停滞在中间某 ...

  9. mysql数据库事务四大特性的实现原理

    事务的四大特性 原子性.一致性.隔离性.持久性 原子性实现 原子性保证事务要么全执行成功,要么全不执行. mysql使用回滚机制实现,undo log实现回滚. 事务执行 insert.update. ...

最新文章

  1. 5月23日 JavaScript
  2. html中,纯数字或纯英文的一串字符超出父容器不会折行显示,如何解决?
  3. MyBatis学习总结(一)——MyBatis快速入门
  4. Spring-AOP 静态普通方法名匹配切面
  5. Theory Defect in selecting best pruned tree from CCP with Cross-validation
  6. Tableau研学小课堂(part7)--计算字段
  7. python蟒蛇绘制实例分析_011 实例2-Python蟒蛇绘制
  8. 当年发明hello, world的大神,后来怎么样了?
  9. 贪吃蛇游戏java代码_Java实现贪吃蛇游戏
  10. Visio 2019/2016中文版零基础入门视频教程
  11. 第十届山东省ACM程序设计竞赛(部分题解)
  12. Windows登录日志详解
  13. k8s之炉火纯青之pinpoint链路追踪
  14. 代码不朽笔记: 编写简单的代码单元
  15. arm汇编总结---让汇编不再神秘
  16. 数据库范式(normalization)
  17. 树莓派魔镜MagicMirror —— 8 MagicMirror基本模块设计
  18. Linux发行版 CentOS Ubuntu RedHat Android Tizen MeeGo
  19. linux 下启动 jar包
  20. BC20 GPS定位功能

热门文章

  1. C语言基本数据类型简介
  2. Spring定时任务调度lt;task:scheduled-tasksgt;【含cron参数详解】
  3. 刚刚:《游戏王》“20周年纪念版青眼白龙” 金卡再现法拍平台
  4. html表白earth,表白很感动的英语句子
  5. Java 时间 long转int问题
  6. 【Android】Android 8 WiFi的自由控制:静态STATIC连接 + 动态DHCP连接
  7. java微信公众号分享页面,微信公众号分享功能防坑指南
  8. 渗透杂记-2013-07-12
  9. Python字典排序、字典列表排序、嵌套字典排序
  10. 云计算学习历程之-备份服务(rsync)上