“`” 考察点:事务的隔离级别
<figure><table>
<thead>
<tr><th>隔离级别</th><th>脏读(Dirty Read)</th><th>不可重复读(NonRepeatable Read)</th><th>幻读(Phantom Read)</th></tr></thead>
<tbody><tr><td>未提交读(Read uncommitted)</td><td>可能</td><td>可能</td><td>可能</td></tr><tr><td>已提交读(Read committed)</td><td>不可能</td><td>可能</td><td>可能</td></tr><tr><td>可重复读(Repeatable read)</td><td>不可能</td><td>不可能</td><td>可能</td></tr><tr><td>可串行化(Serializable )</td><td>不可能</td><td>不可能</td><td>不可能</td></tr></tbody>
</table></figure>
未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据。
提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 (不重复读)。
可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读。
串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞。
<pre><code> "“`
Was this helpful?
0 /
0