mysql 5.7新特性derived_merge

表从5.6迁移到5.7,发现查询变慢,explain 发现执行计划也不一样,百度发现是由于5.7的新特性derived_merge导致的:

5.6.40  不支持 derived_merge=on 反而执行计划里面有derived  (执行快)
5.7.25 ubuntu16.04  支持 derived_merge=on 反而执行计划里面没有derived  (执行慢)

那么数据库命令行执行 set GLOBAL optimizer_switch='derived_merge=on',发现执行后变快了几十倍,但再次执行还会变慢。

最后在mysqld.conf 里设置全局变量  optimizer_switch='derived_merge=OFF' 重启生效,不用每次执行set。

derived_merge 字面意思派生合并

你可能感兴趣的:(mysql)