因此,正确的原子操作是真正被执行过的。是物理执行。

在当前事务中确实能看到插入的记录。最后只不过删除了。但是AUTO_INCREMENT不会应删除而改变值。

1、为什么auto_increament没有回滚?

因为innodb的auto_increament的计数器记录的当前值是保存在存内存中的,并不是存在于磁盘上,当mysql server处于运行的时候,这个计数值只会随着insert改增长,不会随着delete而减少。而当mysql server启动时,当我们需要去查询auto_increment计数值时,mysql便会自动执行:SELECT MAX(id) FROM 表名 FOR UPDATE;语句来获得当前auto_increment列的最大值,然后将这个值放到auto_increment计数器中。所以就算 Rollback MySQL的auto_increament计数器也不会作负运算。

2、MySQL的事务对表操作的时候是否是物理操作?

MySQL的事务是有redo和undo的,redo操作的所有信息都是记录到 redo_log中,也就是说当一个事务做commit操作时,需要先把这个事务的操作写到redo_log中,然后再把这些操作flush到磁盘上,当 出现故障时,只需要读取redo_log,然后再重新flush到磁盘就行了。

而对于undo就比较麻烦,MySQL在处理事务时,会在数据共享 表空间里申请一个段叫做segment段,用保存undo信息,当在处理rollback,不是完完全全的物理undo,而是逻辑undo,就是说会对之 前的操作进行反操作,但是这些共享表空间是不进行回收的。这些表空间的回收需要由mysql的master thread进程来进行回收。

c mysql事务回滚_MYSQL事务回滚的2个问题分析相关推荐

  1. mysql数据库出现回滚_mysql数据库回滚

    在应用$mysqli时,因没常用到数据回滚,老忘,整理下,做个记录. $mysqli->autocommit(FALSE);//自动提交设置关闭 $mysqli->query(" ...

  2. mysql 事务隔离规范_MySQL事务隔离级别以及脏读、幻读、不可重复读示例

    事务的隔离性 MySQL是一个客户端/服务器架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上之后,就可以称之为一个会话(Session).每个客户端都可以在自己的 ...

  3. mysql 不同连接的事务 会嵌套_MySQL——事务

    事务(Transaction)是数据库区别于文件系统的重要特性之一,事务会把数据库从一种一致状态转换为另一种一致状态. 关键词 事务四大特性ACID MySql事务隔离级别 MVCC多版本并发控制 实 ...

  4. mysql怎么测试事物_mysql事务简单测试

    Auth: jin Date: 20140507 一.事务控制 默认情况下,MySQL是自动提交(autocommit)的,如果需要通过明确的commit和rollblack来提交和回滚事务,那么需要 ...

  5. mysql 默认事务隔离级别_MySQL 事务隔离级别详解

    个人公众号『码农札记』,欢迎关注,查看更多精彩文章. 简介: MySQL的事务隔离级别一共有四个,分别是读未提交.读已提交.可重复读以及可串行化. 四个特性ACID 原子性 (Atomicity) 事 ...

  6. mysql spring隔离级别_MySQL事务与Spring隔离级别实现

    1.事务具有ACID特性 原子性(atomicity):一个事务被事务不可分割的最小工作单元,要么全部提交,要么全部失败回滚. 一致性(consistency):数据库总是从一致性状态到另一个一致性状 ...

  7. Mysql drop table 原理_mysql事务的实现原理

    此篇文章算是对mysql事务的一个总结,基本把mysql事务相关的知识点都涵盖到了,面试问来问去无非也就是这些,在了解这些之前我们先对mysql在执行的过程中 有一个整体的认识,如下图 如上图所示,M ...

  8. mysql事务使用转化_Mysql事务

    1事务简介 MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操 ...

  9. MySQL不可读举例_MySQL事务隔离级别与相关示例(脏读、不可重复读、幻读)

    目录 MySQL8中隔离级别的变量跟之前的版本不一样,之前是tx_isolation,MySQL8改成了transaction_isolation.查看当前隔离级别的命令是 mysql> sel ...

  10. mysql中视图备份_MySQL 事务、视图、索引、备份和恢复

    事务 为什么需要事务: 转账.总量不变,但其他值进行变化. 事务是什么: 作为单个逻辑工作单元执行的一系列操作. 多个操作作为一个整体向系统提交,要么执行/不执行. 事务是一个不可分割的工作逻辑单元. ...

最新文章

  1. CSSA email list
  2. 北大林宙辰:追求机器学习研究的美感
  3. 苹果「热修复门」事件复盘、分析和展望
  4. 判断奇偶microsoft visual basic_#梅园# 在心理学上面如何判断一个男生暗恋你的表现...
  5. nyoj983 首尾相连数组的最大子数组和
  6. 皮一皮:一直情绪不稳的原因终于找到了!
  7. oracle用户创建及权限设置
  8. 关于js禁止浏览器缩放
  9. 计算两个日期相差的天数
  10. Oracle用户相关命令
  11. [社会趣闻]储户召集7名亲友占满银行窗口 每次存一元
  12. angularjs html5模式,Angularjs $location html5mode浅析
  13. 属性编辑器未在PropertyEditorManager中注册?
  14. 深度学习——模型的压缩和加速
  15. 捷联惯导算法与组合导航原理讲义捷联惯导基础知识剖析目录
  16. 装黑苹果卡在苹果图标_EFI + Clover引导,已装好系统,重启进系统卡在苹果logo,似乎是显卡问题……...
  17. 计算机d盘无法格式化,四种方法解决D盘无法格式化问题
  18. 已非昔日阿蒙!21世纪柴油发动机详解
  19. 目标检测中文类别--在图片中添加汉字
  20. python实现视频压缩

热门文章

  1. docker在centos7.x系统配置私有库
  2. WPF中的TreeView入门
  3. 一份数据工程师必备的学习资源,干货满满(附链接)
  4. Spring Cloud Zuul 1(API 网关服务)
  5. Python图片爬虫
  6. 高级装饰器---验证用户登录
  7. CSS3的几个标签速记3
  8. 【mysql】使用脚本对mysql状态进行监控
  9. (转) 三袋米的故事
  10. Harris角点检测算法 1