写在文章前:本系列文章用于博主自己归纳复习一些基础知识,同时也分享给可能需要的人,因为水平有限,肯定存在诸多不足以及技术性错误,请大佬们及时指正。
1.事务
1.1、事务的定义与特性
事务(Transaction)是一个操作序列,逻辑上不可分割的工作单位,以BEGIN TRANSACTION开始,以ROLLBACK/COMMIT结束。
四大特性(即常说的ACID特性):
- 原子性(Atomicity):一个事务是一个逻辑上不可分割的工作单位,事务中包括的操作要么都做,要么都不做。即事务的所有操作要么全部提交成功,要么全部失败回滚。
- 一致性(Consistency):事务的执行必须使数据库保持一致性状态,即使数据库从一个一致性状态变到另一个一致性状态。在一致性状态下,所有事务对一个数据的读取结果都是相同的。
- 隔离性(Isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。也就是说一个事务所做的修改在最终提交以前,对其它事务是不可见的。
- 持久性(Durability):一旦事务提交成功,它对数据库中数据的修改是永久性的。