

一、事务介绍
事务是一组 DML 相关的语句集合,这些指令要么全部成功,要么全部失败,满足如下性质:
- 原子性(Atomicity):操作不可分割,要么全成要么全败。
- 一致性(Consistency):事务前后数据库完整性不被破坏。
- 隔离性(Isolation):并发事务互不干扰,避免脏读、幻读等问题。
- 持久性(Durability):事务提交后,数据修改永久有效。
二、为什么要有事务
事务是为了服务应用层而存在。数据库是存储数据的地方,应用层对数据进行的操作必须保障数据的一致性。这些关注点(如修改是否成功、数据是否会丢失)应交由 MySQL 自行实现,因此它是一个服务机制。
三、事务的版本支持
在 MySQL 中,只有使用了 InnoDB 数据库引擎的数据库或表才支持事务,MyISAM 不支持。
mysql> show engines; -- 表格显示
mysql> show engines \G; -- 行显示

四、事务提交的两种方式
事务的提交方式常见的有两种:自动提交和手动提交。
查看事务提交方式:
show variables like 'autocommit';







