select * from t where id=1和select * from t where id=1 lock in share mode的区别?

![image.png](https://images.codewd.com/a4f61b6db96f934633aadd2d59d94b73.png) 为啥上面的要800毫秒,下面的只要1毫秒不到?

1 个回答

  • 松林
    入体冰凉的月光,都比不上你绝情的目光。
    带 lock in share mode 的 SQL 语句,是当前读,因此会直接读到 ID=1这个结果,所以速度很快;而 select * from t where id=1 这个语句,是一致性读,需要依次执行 undo log,id=1 这个结果返回。注意,undo log 里记录的其实是“把 2 改成 1”,“把 3 改成 2”这样的操作逻辑,所有可以看一下mysql的负载,应该是当时的并发比较高,或者有长事务没结束。
    发布于 2021-12-20 23:20 •IP属地 云南
    举报
    评论
    收藏