Azure
Azure
发布于 2024-04-16 / 8 阅读
0
0

mysql 事务控制篇

1、事务的四大特性(ACID)

简称

全称

中文名

释义

A

Atomicity

原子性

一个事务能够正确地将数据从一个一致性的状态,变换到另一个一致性的状态

C

Consistency

一致性

一个事务所有的操作,要么全部执行,要么就一个都不执行,即 all-or nothing。它可以让事务在出现故障等原因,导致不能全部执行成功时,将已经执行的部分操作,回滚到事务前的状态

I

Isolation

隔离性

如果多个事务并发执行,那么执行结果和一个一个串行执行是一样的。它可以使事务在执行时,不会受到其他事务的影响。不过在实践中,由于考虑到性能的问题,一般都使用较弱一点的保证

D

Durability

永久性

如果一个事务已经提交,不论什么原因,它产生的结果都是永久存在的,它保证了事务的结果不会丢失

2、事务控制语句

命令

含义

BEGIN/START TRANSACTION

显式地开启一个事务

COMMIT/COMMIT WORK

提交事务,并使已对数据库进行的所有修改成为永久性的

ROLLBACK/ROLLBACK WORK

回滚结束用户的事务,并撤销正在进行的所有未提交的修改

SAVEPOINT identifier

创建名为identifier的回滚点,一个事务中可以有多个SAVEPOINT

RELEASE SAVEPOINT identifier

删除名为identifier的回滚点,当没有指定的保存点时,执行该语句会抛出一个异常

ROLLBACK TO identifier

把事务回滚到名为identifier的回滚点

3、InnoDB存储引擎提供的事务隔离级别

级别

含义

READ UNCOMMITTED

读未提交

READ COMMITTED

读已提交(Oracle默认隔离级别)

REPEATABLE READ

可重复读(Mysql默认隔离级别)

SERIALIZABLE

序列化

tips:通过SET TRANSACTION命令可以设置当前会话的隔离级别

4、MySQL事务处理两种方法

  • 使用BEGIN/COMMIT/ROLLBACK控制

  • 使用SET AUTOCOMMIT=0禁止自动提交,使用COMMIT;来手动提交


评论