MySQL学习笔记之一条简单的语句也执行如此的慢(十九)

声明:本文章内容是根据极客时间中林晓斌的课程《MYSQL45讲》,经过学习,加以自己的理解形成的笔记。具体原文可以到官网进行阅读。如有侵权请,告知删除。

1.等 MDL 锁

MySQL学习笔记之一条简单的语句也执行如此的慢(十九)
此时的态就是SessionA 把SessionB给阻塞了。A正持有一个MDL写锁,把select语句给堵住了。

2.等flush

MySQL学习笔记之一条简单的语句也执行如此的慢(十九)
flush操作就是将内存数据刷入磁盘的一个过程。

3.等行锁

MySQL学习笔记之一条简单的语句也执行如此的慢(十九)

4.慢查询

MySQL学习笔记之一条简单的语句也执行如此的慢(十九)

  • lock in share mode 的 SQL 语句,是当前读,因此会直接读到 1000001 这个结果,所以速度很快;
  • 而 select * from t where id=1 这个语句,是一致性读,因此需要从 1000001 开始,依次执行 undo log,执行了 100 万次以后,才将 1 这个结果返回