事务:一个最小的不可再分的单元;可以理解为一个事务对应的是一组完整的业务,并且在这个事务中所作的一切操作要么全部成功,要么全部失败,只要有一个操作没成功,整个事务都将回滚到事务开始前。
事务的四大特征:
- 原子性:每一个事务都是一个不可再分的工作单位,事务中包括的操作要么都做,要么 都不做。
- 一致性:对于数据的操作从一个一致的状态转变成另一个一致转态。
- 隔离性:指一个事务的执行不能被其他事务干扰,即一个事务内部的操作对并发的其他事务是具有隔离的,并发执行的各个事务之间不能互相干扰。
- 持久性:一个事务一旦提交,他对数据库中的数据的改变就应该是永久性的。提交后的其他操作或故障不会对其具有任何影响。
事务的隔离级别:
脏读:至一个事务读取到另一个事务未提交的数据。
不可重复读:指一个事务对同一行数据重复读取多次,但得到的结果不同。
幻读:指一个事务执行多次查询,但是多次查询的数据的结果中包含了第一不存在的数据或数据有减少。
更新丢失:两个事务都同时更新一行数据,一个事务对数据的更新把另一个事务对数据的更新覆盖了。这是因为系统没有执行任何的锁操作,因此并发事务并没有被隔离开来。
读未提交:会出现脏读、不可重复读、幻读。
读已提交:会出现不可重复读、幻读。
可重复度:会出现幻读。
可串行化:以上问题都不会出现。但是效率低。