数据库事务以及事务的四大特性

100次浏览     发布时间:2024-08-29 10:47:36    


如果你是一名后台程序员开发,那么你一定或多或少的接触过事务。因为相对于高并发,且业务有一定复杂性的系统来说,事务是一定需要的,而且是必须的。他可以帮助我们将若干不同的子任务当成一个整体来完成,以保证整个业务的正确性。
举个简单的例子:
在七夕这天,你给你的女票发了一个520红包
对于钱款转移的这个过程来说,存在两个子任务
首先从你的余额里扣款(520元)
同时往你的女票余额里增加钱(520元)
这两个子任务对于红包业务来说,要么都成功,要么都不成功,不应该存在你扣款了,但是你的女票没有加钱的中间状态。这种被看作一个整体,并且子任务的状态都需要保持一致状态的事情(状态:操作成功,或者完全没有操作成功),我们就称之为事务。(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )当然这只是一个非常简单的例子。下边是更专业的定义:
事务是数据库管理系统,在执行的过程中的一个逻辑单位,他由一个有限的数据库操作序列构成。
其中逻辑单位表示事务不可拆分,结果一致(成功或者失败)
而我们平常更多的将事务特指DML类型的操作,也就是对数据的增删改,而不是所有的数据库操作,例如其他的建表,删表等。
这里还要注意的一点是,事务是一个能力,并不是所有的数据库都支持事务的。在mysql中,只有官方自带的引擎只有NDBA和innodb支持事务。
针对事务,我们从四个方面进行探讨,也就是事务的四大特性---ACID

下边我们来分别谈谈这四个特性
A:Atomicity 原子性
原子性是指啥呢?
原子Atomicity在希腊语中转化而来,本意就是不可再拆分。最终结果要么就是全部成功,要么就是全部失败,不存在拆分开来,部分成功的场景,也就是是前文所说的逻辑单位。


D:Durability 持久性
只要事务提交成功,那么事务对数据库的操作就是一个永久性的作用,不会存在提交后,由于系统的原因,导致操作的效果消失了。


I :Isolation 隔离性
数据库存在多个事务同时操作时,应该保证事务时间互相不干扰,操作互相不影响。
如果像java语言中通过同步锁线性的操作,隔离性的问题肯定可以解决,但是这样操作就导致事务都是串行操作,效率低下,因此可以通过适当的调整隔离性,也就是事务互相之间的可见性的程度,来更好的提高性能。这就是隔离性所牵扯到一个隔离级别的问题,后边的博客中我们会讲到。

C:Consistency 一致性
一致性相对于其他特性来说最不容易理解,所以我们放到最后来讲。
所谓的一致性指的是数据库中的约束不会被打破,这种约束指两部分,
第一数据库的约束,如金额不能为负值。外键的约束
第二业务的约束,金额的转出的总额和转入的总额必须要相等。
这里有一个点,很多文章都解释的不够清楚,觉得一致性是指事务中不同的操作的状态要一致,这个只是字面意思,而字面意思又因为翻译的问题被曲解。所以很多人觉得一致性和原子性的概念很容易混淆,原因就在这里。更不理解为什么说一致性的是AID三个特性的最终目的。所以更正确的理解应该是数据库事务操作后应该与约束保持一致,这就都理解通了。
所以特别要注意,这里的Consistentcy与CAP中的C不是一层含义。而是指数据库事务的操作,应该与业务要求保持一致。再啰嗦点,就是说,一致性是指数据要和预期的状态保持一致。因此在严格的意义上来说,一致性并不是数据库的特性,而是应用层(目的)的特性。

相关文章
  1. 伊莱克斯空调维修售后号码24小时丨全国400服务点实时反馈-今-日-资-讯(伊莱克斯空调空调介绍 )

    伊莱克斯空调的售后维修电话是:400-883-2086。伊莱克斯空调作为智能家居市场的佼佼者,以其先进的技术和优质的产品赢得了广大消费者的青睐。再优质的产品也难免会在使用过程中出现一些问题,因此售后服务的质量就显得尤为重要。为了保障用户的使用体验,伊莱克斯空调提供了专业的售后维修服务,其中一个重要的

    100 2025-08-21 18:23:30

  2. 方米空调全国各市售后服务点热线号码实时反馈-今-日-更-新(方米空调出风量小、制冷效果差? )

    方米空调全国统一售后服务24小时热线电话:400-883-2086方米空调400全国服务电话:400-883-2086。方米空调24小时服务热线:400-883-2086什么是保修?保修(方米空调),是指生产、组装、包装、销售或以其他方式提供电器的厂商就其所提供方米空调的状态

    100 2025-08-21 18:22:52

  3. 春兰空调售后服务中心实时反馈-今-日-资-讯(春兰空调空调标识 )

    一、春兰空调售后服务电话全国统一客服热线春兰空调24小时服务电话为400-883-2086,支持故障报修、安装咨询、服务网点查询等。二、售后服务政策与承诺1. 保修范围- 整机保修:1年(部分高端机型核心部件延保至3年)。- 维修保修:维修后提供3个月至1年不

    100 2025-08-21 18:21:53

  4. 美意空调全国售后服务网点号码实时反馈-今-日-资-讯(美意空调线控器与主板通讯故障 )

    美意空调24小时售后维修电话:400-883-2086上门时间:20分钟内响应上门收费标准:上门检测为准,报价后可选择是否维修。维修说明:1.上门维修时间(周一至周日8:00-22:00);2.客户报修后,师傅会尽快与您联系,确认上门时间;3.师傅按照预约时间携带专业设备上门进

    100 2025-08-21 18:21:11

  5. 美的空调维修服务中心|全天24小时服务热线实时反馈-今-日-更-新(美的空调空调热风 )

    我们了解,每一个家庭的美的空调都是守护健康的重要伙伴,因此,我们的使命就是确保这些伙伴始终处于最佳状态。美的空调售后客服电话:400-883-2086美的空调由一群经验丰富的专业技术人才组成,他们对美的空调的内部构造了如指掌,无论是日常维护还是深度修理,都能迅速找到问题所在,并提供精

    100 2025-08-21 18:20:52