ACID——MYSQL事务的四个特性

ACID指出每个事务型RDBMS必须遵守四个属性,即原子性、一致性、孤立性、持久性。

原子性

  • 原子性意味着事务的整体性和不可分割性,这就类似化学中的原子,是一个不可分割的单元。一个事务可以是一个(任务)操作,也可以是多个(任务)操作,假设一个事务由多个操作(任务)组成,那么这些操作必须都执行成功这个事务才被认为执行成功,只要其中有一个任务执行失败那么整个事务都会被认为执行失败,导致自动回滚到初始状态,通俗来讲就是“同进退”,这保证了事务的整体性。这就是事物的原子性。
    专业来讲,原子的执行是一个全部发生或全部失败的整体过程。在一个原子操作中,如果事务中的任何一个语句失败,前面执行的语句都将被返回,以保证数据的整体性不被破坏。这在常用的系统应用中,为保证数据的安全性起到一定作用。
    (注:可以结合博客http://blog.csdn.net/jeaforea/article/details/51994636来理解)

一致性

  • 在MySql事务处理过程中,无论事务是完全成功或是在中途因某些环节失败而导致失败,但事务使系统处于一致的状态时,必须保持一致性,用户A向用户B的账户中转入5000元,但用户B在查询转账信息的时候,发现自己的账户只增加了3000元,这样不能使整个事务达到一致性。
    在MySql中,一致性主要由MySql的日志机制处理,它记录数据库的所有变化,为事务回复提供跟踪记录。如果系统在事务处理中间发生错误,MySql恢复过程将使用这些日志发现事务是否已经完全成功执行或需要返回。一致性属性保证数据库从不返回一个未处理的事务。

孤立性

  • 孤立性也称隔离性,它是指每个事务在自己的空间发生,和其他发生在系统中的事务隔离,而且事务的结果只在它完全被执行的时候才能看到,如果该事务未提交,则其他会话看不到执行的结果。这样的话即使一个系统中同时发生多个事务,孤立性也可以保证特定的事务在完成之前,其结果是不被公布的。
    当系统支持多个同时存在的用户和连接时,系统必须遵守孤立性原则,否则在执行过程中可能导致大量数据被破坏,孤立性保证每个事务完整地在其各自的空间内被顺序的执行,保证事务之间不会相互冲突。

持久性

  • 在MySql中,即使是数据库系统崩溃,一个提交的事务仍然在坚持。当一个事务完成,数据库的日志已经被更新时,持久性即可发挥其特有功效。在MySql中,如果系统崩溃或者数据存储介质被破坏,通过使用日志,系统能够恢复在重启前进行的最后一次成功更新,可以反应系统崩溃时处于执行过程的事务的变化。
    MySql的持久性是通过一条记录事务过程中系统变化的二进制事务日志文件来实现的。如果遇到硬件损坏或者系统的异常关机,系统在下一次启动时,通过使用最后的备份和日志就可以恢复丢失数据。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值