01.31 Day 12 - 重温 Day 3
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 12 天,也是我第 59 次进行这种操作。 今天我温习了该专栏里一篇叫《事务隔离:为什么你改了我还看不见?》的文章。 关键词总结:隔离性与隔离级别、(隔离级别(读未提交、读提交、可重复读、串行化)、隔离级别的事务效果(读未提交、读提交、可重复读、串行化))、事务隔离的实现、事务的启动方式(显式启动、隐式启动)。 所学总结: 《事务隔离:为什么你改了我还看不见?》 隔离性与隔离级别 解决脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)等问题。 隔离级别 读未提交(read uncommitted)、读提交(read committed)、可重复读(repeatable read)以及串行化(serializable)。 读未提交 事务提交之前其所做的变更可被其他事务看见。 读提交 事务提交之后其所做的变更才可被其他事务看见。 可重复读 事务执行过程看到的数据总是和事务在启动时看到的数据一致。事务提交之前其所做的变更对其他事务不可见。 串行化 对于同一条记录,写时加写锁,读时加读锁。出现读写锁冲突时需要等事务执行完成才能继续。 隔离级别的事务效果 读未提交 虽然事务 B 还未提交,但事务 A 能看到其结果。 读提交 事务 B