隔离级别(自上而下隔离级别升高,但因为锁机制,对应的性能会降低)
脏读 | 不可重复读 | 虚读(幻读) | |
Read Uncommitted | 可能出现 | 可能出现 | 可能出现 |
Read Committed | 可能出现 | 可能出现 | |
Repeatable Read | 可能出现 | ||
Serializable |
脏读:事务处理过程中读取了其他未提交的事务的数据。
不可重复读:事务处理过程中多次查询同一字段却每次返回不同的值。这是由于在查询间隔期间该字段被其他事务修改并提交了(UPDATE)。
虚读(幻读):事务处理过程中更新某一字段的值,更新完成执行查询却发现某些记录对应的该字段值并未变化。这是由于在该事务更新完成后执行查询前其他事务向此表插入并提交了新记录,新记录对应该字段的值依然是更新之前的旧值(INSERT)。
mysql 默认为 Repeatable Read。oracle, sql server 默认为 Read Committed。