一通骚操纵,我把SQL执行服从进步了10000000倍!
时刻: 1.076s,竟然时刻还变长了,什么缘故起因?查察执行打算: 优化后的查询语句为:
貌似是先做的毗连查询,再举办的where前提过滤 回到前面的执行打算: 这里是先做的where前提过滤,再做连表,执行打算还不是牢靠的,那么我们先看下尺度的sql执行次序: 正常环境下是先join再举办where过滤,可是我们这里的环境,假如先join,将会有70w条数据发送join做操,因此先执行where过滤是明智方案 此刻为相识除mysql的查询优化,我本身写一条优化后的sql
即先执行sc表的过滤,再举办表毗连,执行时刻为:0.054s 和之前没有建s_id索引的时刻差不多,查察执行打算: 先提取sc再连表,这样服从就高多了,此刻的题目是提取sc的时辰呈现了扫描表,那么此刻可以明晰必要成立相干索引
再执行查询:
执行时刻为:0.001s,这个时刻相等靠谱,快了50倍 执行打算: 我们会看到,先提取sc,再连表,都用到了索引。 那么再来执行下sql
执行时刻0.001s 执行打算: 这里是mysql举办了查询语句优化,先执行了where过滤,再执行毗连操纵,且都用到了索引。 最近又从头导入一些出产数据,经测试发明,前几天优化完的sql执行服从又变低了 调解内容为SC表的数据增添到300W,门生分数更为离散。 先回首下: (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |