事务隔离原理
<ul>
<li><a href="https://www.bilibili.com/video/BV1pA411H7Vd?p=4">https://www.bilibili.com/video/BV1pA411H7Vd?p=4</a></li>
</ul>
<h2>事务隔离级别</h2>
<ul>
<li>读未提交</li>
<li>读已提交</li>
<li>可重复读(默认)</li>
<li>串行化</li>
</ul>
<h2>事务隔离性实现</h2>
<ul>
<li>通过锁实现</li>
<li>MyISAM 共享锁,独占锁</li>
<li>InnoDB 共享锁,排他锁</li>
<li>独占锁和排他锁都是互斥的意思</li>
</ul>
<h2>脏读</h2>
<ul>
<li>一个事务读取到其他事务没有提交的数据</li>
</ul>
<h2>不可重复读</h2>
<ul>
<li>一个事务内,多次查询同一条件,查询同一行记录值不一致</li>
</ul>
<h2>幻读</h2>
<ul>
<li>一个事务内,多次查询同一条件,查询记录行数不一致</li>
</ul>
<h2>隔离级别与脏读、幻读、不可重复读的关系</h2>
<table>
<thead>
<tr>
<th>隔离级别</th>
<th>脏读</th>
<th>不可重复读</th>
<th>幻读</th>
</tr>
</thead>
<tbody>
<tr>
<td>读未提交</td>
<td>允许</td>
<td>允许</td>
<td>允许</td>
</tr>
<tr>
<td>读已提交</td>
<td>不允许</td>
<td>允许</td>
<td>允许</td>
</tr>
<tr>
<td>可重复读</td>
<td>不允许</td>
<td>不允许</td>
<td>允许</td>
</tr>
<tr>
<td>串行化</td>
<td>不允许</td>
<td>不允许</td>
<td>不允许</td>
</tr>
</tbody>
</table>