mysql的版本:8.0.11

表信息

大约600w的数据量的表:记录一次mysql查询问题
表结构:
记录一次mysql查询问题

原始sql执行

经过执行n次,缓存之后还是需要4-5s:
记录一次mysql查询问题
执行计划如下:
记录一次mysql查询问题

下面是数据为390w的表查询时间和计划:
记录一次mysql查询问题
记录一次mysql查询问题

同等语义改造后的sql

改造后的语句执行计划如下:
记录一次mysql查询问题
执行时间如下:
记录一次mysql查询问题

总结

目前只能总结下这些现象,不能从更深层次的原理去解释这些现象。希望有更多的时间学习mysql相关理论知识再来补充。
1.不同数据量的执行计划也是不一样的
2.not exists可以适当的场景下替代掉not in 、or 以及!等,可能更容易用到索引。

相关文章:

  • 2022-01-10
  • 2021-12-28
  • 2021-12-18
  • 2021-10-12
  • 2021-12-10
  • 2022-01-18
  • 2021-11-12
  • 2021-05-10
猜你喜欢
  • 2020-03-27
  • 2021-08-02
  • 2020-03-22
  • 2021-04-19
  • 2021-10-25
  • 2022-01-02
  • 2021-07-19
相关资源
相似解决方案