一、ISO和ANIS SQL标准制定了四种事务隔离级别的标准
很少有数据库厂商遵循这些标准,如Oracle不支持READ UNCOMMITTED和REPAEATABLE READ的事务隔离级别。
SQL标准定义的四个隔离级别:
- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE
READ UNCOMMITTED成为浏览访问(browse access),仅仅对事务而言。
READ COMMITTED成为游标稳定(cursor stability)。
REPEATABLE READ是2.9999°的隔离,没有幻读的保护。
SERIALIZABLE成为隔离,或3°的隔离。
二、默认的隔离级别
InnoDB存储引擎默认支持的隔离级别是REPEATABLE READ,在此事务隔离级别下,使用Next-Key Lock锁的算法,避免产生幻读。这与其他数据库系统不同。所以说,InnoDB存储引擎在默认是REPEATABLE READ的事务隔离级别下已经完全保证事务的隔离性要求,即达到SQL标准的SERIALIZABLE隔离级别。
SQLServer默认的事务隔离级别READ COMMITTED
Oracle默认的事务隔离级别READ COMMITTED