一、事务:
事务是 数据库操作的一个逻辑单元,具有ACID的基本特质。
1.原子性(Atomicity)事务作为一个整体执行,要么全部执行,要么全部不执行。
2.一致性(Consistency)在数据库中是满足完整性约束的意思
3.隔离性(Isolation)多事务并发执行时,一个事务不影响其他事务(有隔离级别)
4.持久性(Durability)已经被提交的事务的修改应该永久保存在数据库中
二、数据库的隔离级别
事务的隔离性就是指,多个并发的事务同时访问一个数据库时,一个事务不应该被另一个事务所干扰,每个并发的事务间要相互进行隔离。
隔离级别 | 脏读 | 不可重复读 | 幻读 |
读未提交 | 是 | 是 | 是 |
读已提交 | 是 | 是 | |
可重复读 | 是 | ||
序列化 |
不可重复读主要针对update和delete,幻读主要针对insert。
脏读
A事务访问数据并修改,但没提交。B事务访问并使用了这个数据
不可重复读
A事务多次读同一数据,事务未结束,但B事务修改并提交了数据,此时A事务读到数据不一致
幻读
A事物查询后,B事物添加一数据后提交,A事物两次查询的数据不一样
读未提交(Read Uncommitted)
A事务只要修改数据,其他事务就可以看到
优点:并发能力最强
读已提交(Read Committed)
A事务修改数据,但未提交,其他事务不能读到A事务未提交的数据多数数据默认的事务等级
可重复读(Repeatable Read)
A事务不会修改其他事务未提交的数据
串行化(Serializable)
事务按顺序执行
性能低,很少使用
参考:https://blog.csdn.net/z646721826/article/details/79412459