ACID隔离性之隔离级别
4种隔离级别
- READ UNCOMMITTED(未提交读)
在事务中可以查看其他事物中还没有提交的修改。 - READ COMMITTED(提交读)
大多数数据库系统的默认隔离级别是READ COMMITTED (但Mysql不是)。 - REPEATABLE READ(可重复读)
可能出现 幻读(phantom read) 问题
幻读,指的是当某个事务在读取某个范围内记录时,另外一个事物又在该范围内插入了新的记录,档之前的事务再次读取该范围的记录时,会产生幻行(phantom row)。
MVCC-多版本并发控制可解决幻读问题
是Mysql默认的隔离级别 - SERIALIZABLE (可串行化)
是最高的隔离级别。该级别通过强制事务按序执行,使不同事务之间不可能产生冲突,从而解决了前面所说的幻读问题。
SERIALIZABLE会在读取的每一行数据上都加锁,所以可能导致大量的超时和锁争用问题。