MySQL 事务

Posted lisin-lee-cooper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 事务相关的知识,希望对你有一定的参考价值。

一.什么是事务

原子性
原子性指整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作都执行成功,才算整个事务成功。事务中任何一个SQL 语句执行失败,已经执行成功的SQL 语句也必须撤销,数据库状态应该退回到执行事务前的状态。

一致性
一致性指事务将数据库从一种状态转变为下一种一致的状态。在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。事务是一致性的单位,如果事务中某个动作失败了,系统可以自动撤销事务一返回初始化的状态。

隔离性
隔离性还有其他的称呼,如并发控制(concurrency control) 、可串行化(serializability) 、锁(locking) 等。事务的隔离性要求每个读写事务的对象对其他事务的操作对象能相互分离,即该事务提交前对其他事务都不可见,通常这使用锁来实现。当前数据库系统中都提供了一种粒度锁(granular lock) 的策略,允许事务仅锁住一个实体对象的子集,以此来提高事务之间的并发度。

持久性
事务一旦提交,其结果就是永久性的。即使发生宕机等故障,数据库也能将数据恢复。需要注意的是,只能从事务本身的角度来保证结果的永久性。

二.事务的实现

事务隔离性 (I) :由锁来实现
原子性(A)、持久性(D) :redo log 用来保证事务的原子性和持久性。
一致性(C.) :undo log 用来保证事务的一致性。

以上是关于MySQL 事务的主要内容,如果未能解决你的问题,请参考以下文章

mysql的几种日志记录

mysql的几种日志记录

事务的四大特性

Spring事务_1

mysql知识点

JDBC事务