事务的基础知识
- 事务的定义:
一个或一组指令,要么全部执行成功,要么全部撤销不执行。 - 事务的属性(ACID):
Atomicity 原子性
Consistency 一致性
Isolation 隔离性
Durability 持久性
原子性:事务是一个原子操作,要确保命令要么全部完成,要么全部撤销不执行。如果事务在执行过程中发生错误,就要回滚到执行之前的状态,就像这个事务没有执行过一样。
一致性:事务执行前后的数据的完整性要保持一致。
隔离性:事务执行过程中对数据的修改,在事务提交前对其它事务都不可见。
持久性:一旦事务完成,它对数据库中数据的改变都是永久性的。 - 事务的隔离级别:
读未提交:一个事务可以读取到另一个未提交事务的数据。会产生脏读问题。
读已提交:一个事务要等另一个事务提交后才能读取到数据。会产生不可重复读问题。
可重复读:一个事务读取数据时,不再允许修改操作。会产生幻读问题。(不可重复读对应的是修改Update操作,幻读对应的是插入Input操作)
串行化:事务只能一个接一个执行,不能并发执行。
事务的隔离级别是为了解决多事务执行过程中产生的脏读,不可重复读,幻读等问题。
其中隔离级别越严格,安全性越高,但数据库的并发性能也就越低。
参考链接:https://www.cnblogs.com/ubuntu1/p/8999403.html
https://blog.csdn.net/u011861874/article/details/81539306