MySQL:事物ACID特性

MySQL事物的ACID特性

  • 前言
  • 一、原子性(atomicity)
  • 二、一致性(consistency)
  • 三、隔离性(isolation)
  • 四、持久性(durability)


前言

事物指的是:一组逻辑单元,使数据从一种状态转移到另外一种状态。事物处理的原则是:保证所有的操作都作为一个工作单元来执行,即使出现故障,都不能改变这种执行方式。当在一个事物中执行多个操作时,要么所有的事物都被提交,要么数据库将放弃所有的修改,整个事物回滚到最初状态

一、原子性(atomicity)

原子性是指事物是一个不可分割的工作单位,要么全部提交,要么全部失败回滚

二、一致性(consistency)

一致性是指事物执行前后,数据从一个合法性状态变换到另外一个合法性状态,这种状态是语义上的,而不是语法上的,跟具体业务有关

合法的数据状态是指满足预定的约束。状态是由自己来定义的(比如满足现实世界中的约束)。满足这个状态,数据就是一致的,不满足这个状态,数据就是不一致的。如果事物中的某个操作失败了,系统就会自动撤销当前正在执行的事物,返回到事物操作之前的状态

三、隔离性(isolation)

事物的隔离性是指一个事物的执行不能被其他事物干扰,即一个事物内部的操作及使用的数据对并发的其他事物是隔离的,并发执行的各个事物之间不能互相干扰

四、持久性(durability)

持久性是指一个事物一旦被提交,它对数据库中数据的改变是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响

持久性是通过事物日志来保证的,日志包括了重做日志和回滚日志。当我们通过事物对数据进行修改时,首先会将数据库的变化信息记录到重做日志中,然后再对数据库中对应的行进行修改。这样做的好处是,即使数据库系统奔溃,重启后也能找到没有更新到数据库系统中的重做日志,重新执行,从而使事物具有持久性

你可能感兴趣的:(Mysql,mysql)