问题
myql可重复读隔离级别下可能会导致插入阻塞,问题复现如下
表中有3列都是int类型
其索引情况如下:
id为主索引,c,d为普通索引
现在开始制作问题:
在这里我分别开启两个事务:第一个事务中执行一个update 语句更新一个不存在的数据,这里没有执行commit也就事务未结束,根据二阶段锁协议,锁的释放是在事务结束后。
现在另一个窗口中执行insert操作,这里它一直在阻塞中。等待上面事务commit或者超时
问题
myql可重复读隔离级别下可能会导致插入阻塞,问题复现如下
表中有3列都是int类型
其索引情况如下:
id为主索引,c,d为普通索引
现在开始制作问题:
在这里我分别开启两个事务:第一个事务中执行一个update 语句更新一个不存在的数据,这里没有执行commit也就事务未结束,根据二阶段锁协议,锁的释放是在事务结束后。
现在另一个窗口中执行insert操作,这里它一直在阻塞中。等待上面事务commit或者超时