网站公司,网上商店的优势和缺陷,广西建设学院网站,ps如何做网站专题mysql limit导致索引选择#xff08;选择的并不是最佳索引#xff09;案例分析#xff1a;
这种情况可能是mysql优化器内部bug造成#xff1a;
bug 触发条件如下: 1.优化器先选择了 where 条件中字段的索引#xff0c;该索引过滤性较好#xff1b; 2.SQL 中必须有 orde…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 可以选择过滤性好的索引 最终对比执行效果
优化前: 优化后