目录
前言
MySQL 事务主要用于处理操作量大,复杂度高的数据。事务处理可以用来维护数据库的完整
性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
一、事务
1、事务的概念
事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个
整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。
事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元。
事务适用于多用户同时操作的数据库系统的场景,如银行、保险公司及证券交易系统等等。
事务是通过事务的整体性以保证数据的一致性。
2、事务的ACID特点
ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)应该具有的四个特性:原
子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。这是
可靠数据库所应具备的几个特性。
①、原子性(Atomicity):事务是一个完整的操作,事务的各元素是不可分的;事务中的所有元素
必须作为一个整体提交或回滚;如果事务中的任何元素失败,则整个事务将失败。
②、一致性(Consistency):当事务完成时,数据必须处于一致状态;在事务开始前,数据库中
存储的数据处于一致状态;在正在进行的事务中,数据可能处于不一致的状态;当事务成功完成
时,数据必须再回到已知的一致状态。
③、隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,表明事务必须是独立
的,它不应以任何方式依赖于或影响其他事务(直接影响);修改数据的事务可在另一个使用相同
数据的事务开始之前访问这些数据,或者在另一个使用相同数据的事务结束之后访问这些数据。隔
离性又有四种相互影响:脏读、不可重复读、幻读、丢失更新。隔离的四种级别:未提交读、提交
读、可重复读、串行化。
④、持久性(Durability):指不管系统是否发生故障,事务处理的结果都是永久的;一旦事务被
提交,事务的效果会被永久地保留在数据库中。
3、事务间的相互影响(间接)
然事务有着四大特性,但是还是会出现相互间的间接影响,一个事务的执行不能被其他事务干
扰,大概总结为四种:
①、脏读(读取未提交数据):一个事务读取了另一个事务未提交的数据,而这个数据是有可能回