生活资讯
acid特性 、mysql acid特性
2023-04-07 02:03  浏览:43

事务的四大特性(ACID)是?

主要如下:

原子性(Atomicity): 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;

一致性(Consistency): 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的;

隔离性(Isolation): 并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;

持久性(Durability): 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。

关系型数据库事务的ACID特性与实现

ACID 是为保证事务(transaction)是正确可靠的,所必须具备的四个特性:

以 A 给 B 转账100元为例:

MySQL事务是由 InnoDB 存储引擎实现的。

可以用如下的命令显式的开启事务:

另外,在自动提交(***tocommit)模式下,我们执行的每一条 SQL 语句都是一条独立的事务;如果关闭了自动提交(***tocommit)模式,则所有的 SQL 语句都在一个事务中,直到执行了 commit 或 rollback,该事务结束,同时开始了另外一个事务。

MySQL 事务的 ACID 特性靠如下机制实现:

Go 语言的 Gorm 提供了对于事务操作的支持:

此外,还有嵌套事务以及手动事务等操作,可以参考中文文档: learnku.com/docs/gorm/v…

@Transactional 注解必须添加在public方法上,private、protected方法上是无效的。

一般情况下,推荐将@Transactional 注解加在方法上,因为@Transactional直接加在类或者接口上,@Transactional注解会对类或者接口里面所有的public方法都有效,会影响性能。

acid四大特性是什么?

1、Atomicity(原子性):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。

事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

2、Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。

3、Isolation(隔离性):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。

事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。

4、Durability(持久性):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

扩展资料:

实施

处理事务通常需要一系列操作,由于多种原因,这些操作容易失败。例如,系统可能在其磁盘驱动器上没有剩余空间,或者它可能已经用完了分配的CPU时间。

有两种流行的技术家族:预写日志记录和影子分页。在这两种情况下,都必须对所有要更新的信息以及隔离级别(可能还取决于可能读取的所有数据)获取锁。在预写日志记录中,通过在更改数据库之前将原始(未更改)数据复制到日志中来保证持久性。

这样可以使数据库在发生崩溃的情况下返回到一致的状态。在阴影中,更新将应用于数据库的部分副本,并且在事务提交时激活新副本。

参考资料:百度百科-acid

关于acid特性和mysql acid特性的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发表评论
0评