MySQL的事务管理
发布时间
阅读量:
阅读量
在MySQL数据库中,事务是一种由用户发起的一系列数据库操作序列。这些操作必须全部完成或全部放弃,并且构成一个不可分割的整体工作单位。
为什么要使用事务
事务操作包含四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性和持续性;这四个特性通常被称为ACID属性。
1 原子性
事务必须被视为独立的工作单元,在分布式系统中无法保证一致性的情况下(比如网络中断),事务必须确保其完整性。所有操作均被一次性地完成或全部撤销(不允许任何操作部分性地被完成)。这种特性被称为原子性,在数据库系统中通常通过恢复机制来实现。
在事务启动之前,在线存储库已处在一个稳定的一致状态下;当该事务完成之后,在线存储库必须始终保持一致性状态。维护数据的一致性是用户的职责。
例如,在银行转账操作中,
为了保证业务逻辑的安全性,
确保两个账户的金额总和不会发生变化。
3 孤立性
系统必须确保各个交易在与其他交易运行时保持独立性,在多个交易同时运行的情况下,各参与的交易之间必须实现相互隔离以避免互相干扰或影响。在查询数据时处于的状态其查看到的数据状态要么是另一个 concurrent operation 完成前的状态 要么是另一个 concurrent operation 完成后才会改变 所有中间状态的数据都不会被访问到 孤立性的实现主要依赖于系统
全部评论 (0)
还没有任何评论哟~
