事务是由几个读取和修改数据的sql命令组成的,但是知道commit命令被执行之后,修改操作才被认为是正常的完成。显式事务常以Begin tran语句开头,以commit tran或者rollback tran语句结尾的。

事务具有acid属性

  • 原子性(atomicity):原子性指的是每个事务要不提交(commit)要不终止(rollback)。比如现实中的转账

  • 一致性(consistency):一致性属性确保事务不允许系统到达一个不准确的逻辑状态-数据必须总是保持逻辑上的正确。及时在发生系统故障时,约束和规则也必须得到承兑。

  • 隔离性(isolation):隔离性会将并发事务与其他未完成事务的更新操作分离开。隔离性主要是解决并发事务出现的 脏读、不可重复读、幻读现象,根据自己的业务场景选择对应的隔离级别;

  • 持久性(durability):当事务提交以后,数据库的持久性属性就会确保事务的作用持续存在。

事务总是全部支持这四种acid属性的。但是可能会初选一些另外的行为,常叫做‘一致性问题’。他们仅仅可能存在的行为,而用户对于隔离级别的选择决定下列这些行为哪种是被允许的。

Case1

事务A,先执行,处于未提交的状态

事务B,后执行

如果事务B能够读取到(name为lisi)这条记录,事务A就对事务B产生了影响,这个影响叫做“读脏”,读到了未提交事务操作的记录。

Case2

事务A先执行

事务B,后执行,并且提交

事务A,在此执行相同的查询,结果name:zhaosi

这次是已提交事务B对事务A产生的影响,这个影响叫做“不可重复读”(重点为update),一个事务内相同的查询,得到了不同的结果。

 Case3

事务A,先执行,1条结果:

事务B,后执行,并且提交;

事务A,在此查询为两条,莫名其妙多出了一条

这次是已提交事务B对事务A产生的影响,这个影响叫做“幻读”。(重点在insert,delete)

为了解决多个事务并发会引发的问题,进行并发控制。数据库提供了四种事务隔离级别供用户选择。

  • Read Uncommitted 读未提交

  • Read Committed 读已提交

  • Repeatable Read 可重复读

  • Serializable 串行化

3分钟了解数据库事务相关推荐

  1. mysql当前时间减一分钟_MySQL数据库事务的机制【总结】

    php中文网最新课程 每日17点准时技术干货分享 这几天面试多次被问到了数据库事务机制.隔离级别.乐观锁悲观锁类的问题,之前对这些只能说有所了解,有些概念还停留在记忆层面,没有理解,所以回答的不好.后 ...

  2. 五分钟了解数据库事务隔离

    前言 什么是事务隔离呢?们知道,关系型数据基本都支持事务,事务具备四个特性,分别是:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durabil ...

  3. 清空数据库事务日志_通过事务日志增长加快数据库恢复和长期运行的事务

    清空数据库事务日志 In my previous article in this series Accelerated Database Recovery; Instant Rollback and ...

  4. 直击美团“远程面试”现场,面试官竟反问:你真懂数据库事务吗?

    为什么要记录这次面试经历? 疫情形势仍然十分严峻,很多企业在招聘时会采取网络面试或是远程面试的方式来保证面试流程的顺利进行.马上就要迎来金三银四,希望你们同我一样,面试顺利,顺利拿下自己心仪的offe ...

  5. 数据库事务的四大特性和隔离级别

    数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么全部执行,要么全部都不执行. 一个逻辑工作单元要成为事务,必须满足事务的四大特性(ACID).即 ...

  6. 一个事务中 可以查询自己未提交的数据吗_数据库事务的方方面面

    事务 是关系型数据的一个重要特性,但很少有人能对事务有全面性的了解,这篇文章就把事务的方方面面讲给你. 事务的概念 什么是事务 数据库事务(事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的 ...

  7. 阐述一下Mysql事务的四个特性_数据库事务的四个基本性质?

    本文转载:http://www.sqlstudy.com/sql_article.php?id=2008080302 数据库事务概念 什么是数据库事务? 事务(transaction)是由一系列操作序 ...

  8. 分布式事务开局第一篇,从数据库事务隔离级别说起

    来自:江南一点雨 春节临近,松哥也有点无心撸码.不过很多时候,很多事情,我们不能由着自己的性子,还是要控制一下自己,这不,松哥最近又打算开一个坑,和大家聊一聊分布式事务,因为我们做微服务,分布式事务肯 ...

  9. mysql 事务补偿_TCC补偿性策略_彻底学习数据库事务 seata分布式事务 共享 排它锁 死锁 索引 Spring事务 隔离级别等_MySQL视频-51CTO学院...

    课程总计41课时,从什么是事务讲起,直到分布式事务解决方案,很的0基础基础与提升系列课程.对于难以理解的知识点,全部用画图+实战的方式讲解. 彻底明白事务的四个特性:原子性.一致性.隔离性.持久性,用 ...

最新文章

  1. vue跳转页面增加等待_vue跳转页面方法
  2. 静态页面实现include
  3. C++中XMLHTTPRequest异步使用onreadystatuschange
  4. [Vue.js] 基础 -- Vue实例
  5. 买不起房怕什么,本田说自动驾驶房车才是未来趋势
  6. 学编程必备:3 大编程字体!让你在编程的时候原地起飞!
  7. freeswitch系列三 SIP软电话xlite、linphonec接入kamailio+freeswitch
  8. 稳定触发windows蓝屏的路径漏洞,不要用来整人!
  9. 线性代数 --- Gauss消元的部分主元法和完全主元法
  10. 岁月温柔-6 出院后忐忑不安的妈妈
  11. 加密算法之PKCS填充
  12. TowerJ编译java_2020阿里最新出品的泰山版Java开发手册,告别垃圾代码
  13. 写给计算机老师的一封信800,写给老师的一封信800字
  14. 各大牛逼网站推荐系统
  15. CISSP第三章 访问控制
  16. 【LaTex】beamer中插入GIF动画
  17. 买家的诉求决定你的产品卖点
  18. 宝德服务器文档,宝德服务器RAID操作手册EX16650用户手册
  19. Kali Linux中的十大WiFi攻击工具介绍
  20. 泪奔,配好了bioconductor环境

热门文章

  1. 人才是培养的吗? (转)
  2. c语言 程序延时 校准,c语言实现系统时间校正工具代码分享
  3. 牛客网在线编程java_NowCoder
  4. 延时消息_Handler的消息延时是怎么实现的
  5. Mac OS使用技巧十七:丰富多彩的花哨输入法
  6. 第五章 了解你的用户
  7. ElasticSearch——学习笔记
  8. 理解流量监管和整形的关键算法—令牌桶
  9. 昨日搬至办公室的书籍
  10. 使用 FieldMask 提高 C# gRpc 服务性能