SQL 标准定义了四个隔离级别:
- READ-UNCOMMITTED(读取未提交): 最低的隔离级别,允许读取尚未提交的数据变更,可能会导
致脏读、幻读或不可重复读。 - READ-COMMITTED(读取已提交): 允许读取并发事务已经提交的数据,可以阻⽌脏读,但是幻读
或不可重复读仍有可能发⽣。 - REPEATABLE-READ(可重复读): 对同⼀字段的多次读取结果都是⼀致的,除⾮数据是被本身事务
⾃⼰所修改,可以阻⽌脏读和不可重复读,但幻读仍有可能发⽣。 - SERIALIZABLE(可串⾏化): 最⾼的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个
执⾏,这样事务之间就完全不可能产⽣⼲扰,也就是说,该级别可以防⽌脏读、不可重复读以及
幻读。
MySQL数据库 InnoDB存储引擎默认的隔离机制是REPEATABLE-READ(可重复读),