如果用锁来实现各个隔离级别
读未提交:读写都不加锁
读已提交:写加锁,如果某行被加写锁,那就不能读
可重复读:读加锁,读写锁互斥
串行化:整个事务加锁
不存在单纯的间隙锁,InnoDB加的都是Next-Key锁,既会锁行,也会锁间隙。
比如:where num = 30 会锁<30的区间和>30的区间,以及30本身。
再比如:where num > 10 and num < 30 会锁10和30,以及(10,30)的区间
不可重复读与幻读的区别
不可重复读:第一次读时,行数据值为A,第二次读时,发现行数据值变成了B
幻读:第一次读时,没有A记录,第二次读时,蹦出来一条A记录