MySQL limit导致索引选择(选择的并不是最佳索引)案例分析
2023-12-13 04:42:01
mysql limit导致索引选择(选择的并不是最佳索引)案例分析:
这种情况可能是mysql优化器内部bug造成:
bug 触发条件如下:
??? 1.优化器先选择了 where 条件中字段的索引,该索引过滤性较好;
??? 2.SQL 中必须有 order by limit 从而引导优化器尝试使用 order by 字段上的索引进行优化,最终因代价问题没有成功。
举例说明:
触发bug的SQL:
上面的sql 由于使用了order by id limit 操作,mysql优化器尝试使用 order by 字段上的索引进行优化,最终因代价问题没有成功。也就是上面看到的执行计划里,虽然选择了id这个索引,但是Extra 还是Using where
使用 force index 可以选择过滤性好的索引
最终对比执行效果:
优化前:
优化后:
文章来源:https://blog.csdn.net/shiyu1157758655/article/details/134802227
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!