如下是缺陷列表SQL关键部分截图,从实际的执行来看,优化器选择了索引ix_alarm_raised_time,而非具有选择性的org_code字段的索引,显然执行计划不是理想的。
通过干预手段(ignore index ),让优化器做出正确的选择,修改后的SQL性能由原来的3秒下降到0.32秒

如下是优化后SQL(干预手段)及执行计划、执行时间。



总结
当一个表上,有多个索引时,MySQL优化器可能没有充分利用上想要的索引,而是选择了别的索引,导致执行响应时间变长、资源消耗更多,针对于这种情况,解决方法之一,就是通过手动干预(ignore index),明确指出不需要的索引选择, 让MySQL优化器作出正确选择,以达到提高、改善性能的目的。
本文介绍了一种通过干预MySQL优化器来提升SQL查询性能的方法。针对优化器未选用预期索引的问题,采用ignoreindex技巧引导优化器做出更优选择,使得查询时间从3秒降低到0.32秒。
242

被折叠的 条评论
为什么被折叠?



