SQL标准隔离级别
隔离级别 | 脏读 | 不可重复读 | 幻影读 |
---|---|---|---|
READ-UNCOMMITTED 未提交读 | 是 | 是 | 是 |
READ-COMMITTED 提交读 | 否 | 是 | 是 |
REPEATABLE-READ 重复读 | 否 | 否 | 是 |
SERIALIZABLE 可串行化读 | 否 | 否 | 否 |
特例
InnoDB的默认隔离级别为REPEATABLE-READ。
但是,InnoDB与SQL标准不同的地方在于InnoDB在REPEATABLE-READ
级别下使用的是Next-Key Lock算法,因此可以避免幻读的产生。即InnoDB的REPEATABLE-READ
已经达到SQL标准的SERIALIZABLE
级别。
并且InnoDB使用比其他系统更高级的REPEATABLE-READ
并不会有任何性能损失。