MySQL学习笔记之一条简单的语句也执行如此的慢(十九)
声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。
1.等 MDL 锁
此时的态就是SessionA 把SessionB给阻塞了。A正持有一个MDL写锁,把select语句给堵住了。
2.等flush
flush操作就是将内存数据刷入磁盘的一个过程。
3.等行锁
4.慢查询
- lock in share mode 的 SQL 语句,是当前读,因此会直接读到 1000001 这个结果,所以速度很快;
- 而 select * from t where id=1 这个语句,是一致性读,因此需要从 1000001 开始,依次执行 undo log,执行了 100 万次以后,才将 1 这个结果返回