MYSQL的事物四大特性(ACID)

1.什么是事物?

事务(Transaction)是并发控制的基本单位。所谓的事务,它是由单独单元的一个或者多个sql语句组成,在这个单元中,每个mysql语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条sql语句一旦执行失败或者产生错误,整个单元将会回滚,也就是所有受到影响的数据将会返回到事务开始以前的状态;如果单元中的所有sql语句均执行成功,则事务被顺利执行。

例如,银行转账工作:一个账号转账给另一个账号,就会发生转账的账号会被扣钱另一个账号就会被加钱,这两个操作要么都执行,要么都不执行,在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。

注意:mysql中,有多种存储引擎,在mysql中用的最多的存储引擎有:innodb,bdb,myisam ,memory 等。其中innodb和bdb支持事务而myisam等不支持事务。

2.事物四大特性(ACID)

事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持久性( Durability )。这四个特性简称为 ACID 特性。

原子性( Atomicity ):一个事务不可在分割,要么全部执行成功,要么全部执行失败。

一致性( Consistency ):一个事务的执行会使数据从一个一致状态切换到另一个一致的状态。不会改变数据的完整性和约束性。

隔离性( Isolation ):一个事务的执行不受其他事物的干扰。

持久性( Durability ):当一个事物成功提交后,就会被永久的修改了数据库数据,即使出现系统故障也将一直保留。



----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------