• 0
  • 0
分享

Q #1) MySQL 事务是原子的吗?

答:是的,事务是通过概念在 MySQL 中实现原子性的。

atomic 的简单含义是——ALL 或 NONE 和 MySQL 事务完全支持这一点。在这里,如果没有错误,那么所有的语句都会被执行。但是,如果出现任何差异或错误,则不会执行事务中的任何语句。

Q #2) 如何回滚 MySQL 事务?

答:事务可以提交或回滚/恢复。要恢复事务的更改,您只需在执行 COMMIT 之前运行 ROLLBACK 命令。

例如,参考下面的事务,我们使用 ROLLBACK 来恢复事务期间所做的更改。

START TRANSACTION; --statement1
UPDATE bankaccounts SET funds=funds-100 WHERE accountno='ACC1'; --statement2
UPDATE bankaccounts SET funds=funds+100 WHERE accountno='ACC2'; --statement3
ROLLBACK; --statement4

Q #3) 如何修复 MySQL 中事务的锁等待超时超时?

答:发生此错误的原因有两个。这些是:

等待事务完成时锁定超时已过期/已过。

该事务正在等待/依赖于另一个事务以获取对表的访问权。

使用名为“innodb_lock_wait_timeout”的环境变量配置超时

此变量的默认值为 50 秒。如果您预计交易花费的时间比这更长,那么这个值可以根据要求增加或减少。这可以防止用户收到“超过锁定等待超时错误”。

要获取此变量的当前值,请执行以下命令:

显示变量,如“innodb_lock_wait_timeout”;

并且要设置/更新此变量的值,您可以使用:

SET innodb_lock_wait_timeout=100;

Q #4) MySQL 是否支持嵌套事务?

答:不可以,MySQL 事务不能嵌套。这是因为每当您启动事务时,它都会隐式提交到本地磁盘(然后在最终提交发生时最终写入磁盘)。

想象一下在嵌套事务中使用同一个表,那么内部事务为已经是外部事务一部分的表获取锁将是不确定的。

Q #5) 什么是 XA 交易?

回答: XA 事务是分布式事务,即数据库系统是分布式的(并且本质上由不同的主机表示)

XA 事务遵循 2 阶段提交协议 -

在第一阶段,事务管理器获取事务中所有请求资源的锁。

在第二阶段,事务管理器根据事务语句的结果提交或回滚。

Q #6) DDL 语句可以回滚吗?

答:有些语句不能回滚,比如 DDL(数据定义语言)语句。例如,创建表、更改表、删除字段或表等。如果在事务中使用这些语句并且需要回滚,则这些语句将从列表中排除。

结论

在本教程中,我们了解了 MySQL 中事务的基础知识。我们还了解了 COMMIT 和 ROLLBACK 命令,并使用它们的用法验证了它们。

事务是跨应用程序非常频繁使用的数据库功能,其中需要保留事务属性,即 ACID – 原子性、一致性、隔离性和持久性。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 今天简单分享下,我们做的项目中碰到的一些相对经典的bug,这些bug的出现应该都不是偶然,大部分是开发人员的思维或者开发习惯不太好导致的。一、大bug 按照目前的开发模式很容易出现的问题,完全信任的话不容易发现开发思维是拿别人写好的过来用,有的时候不会细看需求,基本都是改改字段,但是别人写这个照片上传的时候没有可以同时上传6张的情况。所以他这块就有问题。二、小bug,开发理解的和产品想要的不一样产品的意思,0的时候就不要展示那个提醒,类似消息,没有未读消息的时候就不用展示数字,开发更干脆,直接把入口隐藏掉了。三、礼品卡这个版本,对于商品这块没有什么影响,但是对于原有的订单流程,很多改坏了。按照...
            1 1 12718
            分享
          • 2017年8月开始接手做持续集成平台的工作,该平台包含打包发布,每日构建,稳定测试。做这个的初衷是为了能够提早的暴露出问题,同时使开发在打包上尽可能少出错,提高效率。首先收集现状,源码管理混乱,底层打包空间共用,apk打包在本地,没有稳定性测试,专项测试。需求整理,需要做源码管理,分离底层共用的空间,打包统一使用服务器打包,增加自动化测试,稳定性测试,专项测试。下面说下我们的每日构建跟稳定性测试:客户端每日构建1.1、单元测试单元测试主要是由开发负责编写的,主要是因为开发对产品更加的了解,同时测试开发团队人太少了,要做的事情好多,优先做其他的。关于框架选择,最初想要使用的方案是robolect...
            0 2 2098
            分享
          •   一些想转行做软件测试的同学,想知道现在学完的同学的工资是多少,是否值得转行去学习,今天我就拿数据给大家分析一下软件测试到底值不值得去学习。  软件测试的好处  从数据可以看出,软件测试行业的平均工资在9K左右,刚培训完软件测试的学生也可以拿到平均6K,年份越长工资越高,行业领导者的平均工资在25K以上。其中,超过27.4%的员工拿到10-15K的工资。  软件测试招聘需求  看完福利,我们再来看看招聘需求。从数据可以看出,目前软件测试行业的招聘需求主要集中在超一线城市和一线城市。其中,深圳和上海的招聘需求最高,有超过16.6K个和14.7K个的招聘需求,所以建议想从事软件测试工作的同学选择...
            0 0 744
            分享
          •   2017 年苹果公司的 iPhone 电池降频风波迎来最终章,加拿大的用户可能很快就有资格获得苹果公司的赔付。苹果公司已同意支付高达 1440 万美元(加元),以解决加拿大的一起集体诉讼,该诉讼指控苹果公司秘密降低了部分 iPhone 机型的性能,据为该案设立的网站称,不列颠哥伦比亚省最高法院将于 1 月 29 日决定是否批准拟议的和解。  如果和解方案获得批准,符合条件的用户将可以提交索赔申请,要求苹果公司为每部受影响的 iPhone 支付最高 150 加元的赔偿金。具体赔付金额将取决于提交索赔的总数。苹果公司否认了诉讼中描述的指控,和解并不代表承认过错。  该集体包括在 2017 年 ...
            0 0 738
            分享
          •  一、前言工欲善其事,必先利其器最近对 API 接口协作的软件研究了好久,市面上的软件都下载用了一轮,下面给大家介绍其中的最强「神器」 Apifox。Apifox 官网:apifox.cn在介绍它之前,先说几个场景。如果你是后端、前端或测试,那一定遇到过这些场景。1.1. 场景一、后端视角:我是个 后端 ,遇到过的问题:1、接口定好,团队里的前端、测试小伙伴找我 要文档 。代码注释好给个 Swagger 还容易被吐槽界面丑、功能弱,不能做到 开发阶段即可并行联调 ,一开始是对接不了、调试不起来的,甚至有时候还会出现前端开发完界面,只能等后端联调。2、接口联调对接过程中,总会有些接口没...
            0 0 613
            分享
      • 51testing软件测试圈微信