Mysql_四大特性(ACID)、并发事务带来的问题、四种隔离级别
四大特性(ACID)
1. 原子性(Atomicity): 事务是最小的执行单位,不允许分割。事务的原⼦性确保动作要么全部完成,要么完全不起作⽤;
2. 一致性(Consistency): 执行事务前后,数据保持⼀致,多个事务对同⼀个数据读取的结果是相同的;
3. 隔离性(Isolation): 并发访问数据库时,⼀个用户的事务不被其他事务所⼲扰,各并发事务之间数据库是独立的;
4. 持久性(Durability): ⼀个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。
并发事务带来的问题
脏读
某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,没有提交事务,则后一个事务所读取的数据就会是不正确的。
不可重复读
一个事务多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。
幻读
在一个事务的两次查询中数据笔数不一致(在查询间隔中,被另一个事务插入了数据)。
四种隔离级别
READ-UNCOMMITTED(读取未提交): 最低的隔离级别,允许读取尚未提交的数据变更。
READ-COMMITTED(读取已提交): 允许读取并发事务已经提交的数据。
REPEATABLE-READ(可重复读): 对同⼀字段的多次读取结果都是⼀致的,除非是事务本身修改的。
SERIALIZABLE(可串行化): 最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰。

浙公网安备 33010602011771号