前言: 本地事务 & 分布式事务
本地事务
在单个数据库上执行的事务,可以利用关系型数据库本身提供的事务特性来实现事务管理。
事务的四大特性 ACID
1. 原子性:事务是一个不可分割的执行单元,要么全部执行成功,要么全部回滚。
2. 一致性:使数据库从一个一致性状态转变到另一个一致性状态。
3. 隔离性:事务的执行是相互独立的,互不干扰。
4. 持久性:事务的执行结果必须是持久化保存的,事务一旦提交,改变是永久的。
事务并发执行的问题
1. 丢失更新:[ 写-写 ]
2. 读脏数据:[ 写-读 ] 读到尚未提交的数据
3. 不可重复读:[ 读-写 ] 读到的是已提交的数据,只不过在两次读的过程中,数据被另一个事务修改了。
事务的四种隔离级别
1.「读未提交」一个事务读取到了另一个事务修改后但未提交的数据。(脏读)
2.「读已提交」使用排他锁X来对数据加锁。读到的是已提交的数据,只不过在两次读的过程中,数据被另一个事务修改了。(不可重