事务4大特性(ACID)
- 原子性(atomicity):操作过程中不允许其他事务中途插入,工作的最小单元
- 一致性(consistency):事务前后数据的完整性必须保持一致
- 隔离性(isolation):不同事务不互相影响,分为4个隔离级别
- 持久性(durability):事务提交后对于数据会永久保存到数据库中
事务的隔离级别
读未提交(脏读)
一个事务可以读取到另一个事务未提交的数据。这种隔离级别岁最不安全的一种,因为未提交的事务是存在回滚的情况
读已提交(不可重复读)
在当前事务执行过程中另一事务完成提交操作,所以在当前事务当中获取到的涉及到另一事务的数据在提交前后会有不同
可重复读(幻读)
当前事务只能读取一次其他事务的数据,在当前事务执行过程中其他事务完成了提交,这时候当前事务涉及到的数据都得不到更新
串行化
所有的数据库的读或者写操作都为串行执行,当前隔离级别下只支持单个请求同时执行,所有的操作都需要队列执行。所以种隔离级别下所有的数据是最稳定的,但是性能也是最差的。