mysql数据库事务传播特性_数据库事务以及事务的四个特性

如果你是一名后台程序员开发,那么你一定或多或少的接触过事务。因为相对于高并发,且业务有一定复杂性的系统来说,事务是一定需要的,而且是必须的。他可以帮助我们将若干不同的子任务当成一个整体来完成,以保证整个业务的正确性。

举个简单的例子:

在七夕这天,你给你的女票发了一个520红包

对于钱款转移的这个过程来说,存在两个子任务

首先从你的余额里扣款(520元)

同时往你的女票余额里增加钱(520元)

这两个子任务对于红包业务来说,要么都成功,要么都不成功,不应该存在你扣款了,但是你的女票没有加钱的中间状态。这种被看作一个整体,并且子任务的状态都需要保持一致状态的事情(状态:操作成功,或者完全没有操作成功),我们就称之为事务。(防盗连接:本文首发 )当然这只是一个非常简单的例子。下边是更专业的定义:

事务是数据库管理系统,在执行的过程中的一个逻辑单位,他由一个有限的数据库操作序列构成。

其中逻辑单位表示事务不可拆分,结果一致(成功或者失败)

而我们平常更多的将事务特指DML类型的操作,也就是对数据的增删改,而不是所有的数据库操作,例如其他的建表,删表等。

这里还要注意的一点是,事务是一个能力,并不是所有的数据库都支持事务的。在mysql中,只有官方自带的引擎只有NDBA和innodb支持事务。

针对事务,我们从四个方面进行探讨,也就是事务的四大特性---ACID

2b70e2c2fe4ff6d37288c0814d954393.png

下边我们来分别谈谈这四个特性

A:Atomicity 原子性

原子性是指啥呢?

原子Atomicity在希腊语中转化而来,本意就是不可再拆分。最终结果要么就是全部成功,要么就是全部失败,不存在拆分开来,部分成功的场.........

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL事务传播行为有以下四种: 1. READ UNCOMMITTED(读未提交):一个事务可以读取到另一个未提交事务的数据修改,可能会导致脏读、不可重复读和幻读问题。 2. READ COMMITTED(读已提交):一个事务只能读取到已经提交事务的数据修改,可以避免脏读问题,但是可能会出现不可重复读和幻读问题。 3. REPEATABLE READ(可重复读):一个事务在执行过程中多次读取同一数据,可以保证读取到的数据是一致的,可以避免脏读和不可重复读问题,但是可能会出现幻读问题。 4. SERIALIZABLE(串行化):所有事务串行执行,可以避免所有的并发问题,但是会降低并发性能。 ### 回答2: MySQL事务传播行为是指在一个事务中使用多个数据库连接时,对事务操作的提交和回滚的行为。 MySQL事务传播行为包括以下几种: 1. PROPAGATION_REQUIRED(默认值):如果当前没有事务存在,则创建一个新的事务;如果当前已存在一个事务,则加入该事务,成为当前事务的一部分。如果在最外层的事务中被设置为回滚,则整个事务都会回滚。 2. PROPAGATION_REQUIRES_NEW:无论当前是否存在事务,都创建一个新的事务作为当前事务运行。如果当前存在事务,那么将当前事务挂起,执行新的事务,新的事务结束后,再继续执行原先的事务。即使新的事务回滚,也不会影响原先的事务。 3. PROPAGATION_SUPPORTS:如果当前存在事务,则加入该事务。如果当前没有事务,则以非事务的方式执行。即使在该事务中被设置为回滚,也不会影响其他事务。 4. PROPAGATION_NOT_SUPPORTED:以非事务的方式运行。如果当前存在事务,则将其挂起,执行非事务操作,执行完成后,再回复之前的事务状态。 5. PROPAGATION_MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。 6. PROPAGATION_NEVER:以非事务的方式运行。如果当前存在事务,则抛出异常。 7. PROPAGATION_NESTED:如果当前存在事务,则在一个新的事务中执行。如果当前没有事务,则创建一个新的事务。这种传播行为允许在外部事务的范围内创建一个内部事务,内部事务的提交和回滚不会影响外部事务的状态。如果外部事务回滚,内部事务也会回滚。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值