加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL事宜,这篇文章就够了

发布时间:2019-11-01 21:53:27 所属栏目:编程 来源:欧阳思海
导读:0 什么是事宜 事宜(Transaction) 是并发节制的根基单元。所谓的事宜,它是一个操纵序列,这些操纵要么都 执行,要么都不执行,它是一个不行支解的事变单元。事宜是数据库维护数据同等性的单元,在每 个事宜竣事时,都能保持数据同等性。 同时,事宜有着

照旧这个例子,可是对付链事宜来说,是不能直接rollback到生涯点t1的,最能规复到最近的一个生涯点t2;其它我们必要留意,链事宜在执行commit后就会开释当前事宜所持有的全部锁,而带有生涯点的扁平事宜不会影响所持有的锁。

嵌套事宜

在事宜中再嵌套事宜,这种布局有点像一颗横着的树的布局,位于根节点的事宜称为顶层事宜。事宜的前驱称为父事宜,其余事宜称为子事宜。事宜的前驱称为父事宜,事宜的下一层称为子事宜。

子事宜既可以提交也可以回滚,可是它的提交操纵并不顿时见效,除非由其父事宜提交。因此就可以确定,任何子事宜都在顶层事宜提交后才真正的被提交了。同理,恣意一个事宜的回滚城市引起它的全部子事宜一同回滚。

MySQL事宜,这篇文章就够了

  1. BEGIN WORK  
  2.      SubTransaction1:  
  3.              BEGIN WORK  
  4.                  SubOperationX  
  5.              COMMIT WORK  
  6.      SubTransaction2:  
  7.              BEGIN WORK  
  8.                  SubOperationY  
  9.              COMMIT WORK  
  10.      ...  
  11.      SubTransactionN:  
  12.              BEGIN WORK  
  13.                  SubOperationN  
  14.              COMMIT WORK  
  15. COMMIT WORK 

漫衍式事宜

漫衍式事宜凡是是指在一个漫衍式情形下运行的扁平事宜,因此必要按照数据地址位置会见收集中的差异节点。

在差异的物理地点,通过收集会见,执行差异的事宜,这就是漫衍式事宜。

3 事宜的行使

起首这一部门我们照旧先先容一下这些事宜的语句,也不是许多,行使也不伟大,下面用一个表格做一个清算。

MySQL事宜,这篇文章就够了

留意:COMMIT和COMMIT WORK语句差异之处在于COMMIT WORK用来节制事宜竣事后的举动是CHAIN照旧RELEASE,假如是CHAIN,那么事宜就是链事宜。

用户可以通过参数completion_type节制,如下:

MySQL事宜,这篇文章就够了

  •  completion_type = 1 实例

执行下面的操纵;

  1. SET @@completion_type = 1;  
  2. BEGIN WORK;  
  3. INSERT INTO lock_test SELECT 10;  
  4. COMMIT WORK; 

接着我们再执行下面的操纵;

  1. INSERT INTO lock_test SELECT 115;  
  2. ROLLBACK;  
  3.  SELECT * FROM lock_test; 

我们先插入一条数据115,然后再回滚,我们知道假如不是在一个事宜的时辰,115应该是会插入乐成的,就算我们回滚了,可是,这里我们回滚之后,查询功效如下:

MySQL事宜,这篇文章就够了

这个时辰并没有115这笔记录,也就是回滚见效了,声名在COMMIT WORK之后,又是一个新的事宜,以是才会呈现这样的功效。

  •  completion_type = 2 实例

我们先举办下面的操纵;

  1. SET @@completion_type = 2;  
  2. BEGIN WORK;  
  3. INSERT INTO lock_test SELECT 5;  
  4. COMMIT WORK; 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读