mysql查询太慢怎么办 mysql查询慢的优化方案( 二 )


而关联子查询就需要循环迭代:
select from A where not exists (select 1 from B where B.x = a.x and ...) //关联子查询扫描 A 表的每一条记录 rA:扫描 B 表,找到其中的第一条满足 rA 条件的记录 。
显然 , 关联子查询的扫描成本会高于非关联子查询 。
我们希望 MySQL 能先"缓存"子查询的结果(缓存这一步叫物化,MATERIALIZATION),但MySQL 认为不缓存更快,我们就需要给予 MySQL 一定指导 。
...
可以看到执行时间变成了 0.67s 。
整理
我们诊断的关键点如下:
\1. 对于 information_schema 中的元数据表,执行计划不能提供有效信息 。
\2. 通过查看 MySQL 改写后的 SQL,我们猜测了优化器发生了误判 。
\3. 我们增加了 hint,指导 MySQL 正确进行优化判断 。
但目前我们的实验仅限于猜测,猜中了万事大吉,猜不中就无法做出好的诊断 。
关于mysql查询太慢怎么办和mysql查询慢的优化方案的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读