- READ UNCOMMITTED(未提交读)
事务中的修改,即使没有提交,对其他事务也是可见的。
- READ COMMITTED(提交读)
一个事务开始时,只能“看见”已经提交的事务所做的修改。有时候提交读也叫不可重复读(nonrepeatable read)
- REPEATABLE READ(可重复读)
同一个事务中,多次读取同样记录的结果是一致的。mysql默认的隔离级别。
- SERIALIZABLE(可串行化)
最高隔离级别,读取每一行数据都加上锁,可能导致大量的超时和锁争用问题,一般不使用。
脏读(Dirty Read):事务可以读取未提交的数据
不可重复读(nonrepeatable read),也叫虚读:前后读取的记录数可能不一致。事务A在第一次读取记录文章阅读数位5,然后事务B执行了更改,把阅读数改为10.事务A在第二次读取文章阅读数为10。
幻读(Phantom Read):当某个事务A在读取某个范围内的记录时,另外一个事务B又在该范围插入新的记录,当事务A再次读取该范围的记录时,会产生幻行。
不可重复读与幻读都是读到其他事务已提交的数据,但是它们针对点不同。
不可重复读:update。
幻读:delete,insert。