[MySQL] 有没有解决幻读问题

前端之家收集整理的这篇文章主要介绍了[MySQL] 有没有解决幻读问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

默认隔离级别下,MysqL没有解决幻读问题,需要应用代码里加一个锁来解决

幻读问题是啥?

 

默认的隔离级别是可重复读 REPEATABLE-READ   ,  在这个模式下出现幻读的例子一般是这两种情况:

事务1和事务2同时,事务1读数据,事务2插入数据提交,事务1插入同样的数据时报错说已经重复了,我明明刚才查的时候没有,为啥报重复了? 

事务1和事务2同时,事务1更新数据可以把事务2的数据也一块给更了,明明刚才没有怎么突然多出来数据了?

 

解决方式是在select读时候的sql增加for update ,会把我所查到的数据锁住,别的事务根本插不进去,这样就解决了,这里用到的是MysqL的next-key locks

 

猜你在找的MySQL相关文章