249045439
网站优化

一次很有意思的 SQL 优化历程

发表日期:2023-12-28   作者来源:www.bornforlove.cn   浏览:0   标签:    

我用的数据库是mysql5.6,下面简单的介绍下场景。

文/风过无痕-唐

课程表

数据100条

学生表:

数据70000条

学生成绩表SC

数据70w条

查看目的一次很有意思的 SQL 优化历程

实行时间一次很有意思的 SQL 优化历程

,,

发现没用到索引,type全是ALL,那样第一想到的就是打造一个索引,打造索引的字段当然是在where条件的字段。

先给sc表的c_id和score建个索引

第三实行上述查看语句,时间为: 1.054s

快了3w多倍,大大缩短了查看时间,看来索引能很大程度的提升查看效率,建索引非常有必要,有时候都忘记建

索引了,数据量小的的时候压根没感觉,这优化的感觉挺爽。

但1s的时间还是太长了,还能进行优化吗,仔细看实行计划一次很有意思的 SQL 优化历程

在命令窗口实行

,,

有type=all

根据我之前的想法,该sql的实行的顺序应该是先实行子查看

耗时一次很有意思的 SQL 优化历程

,,

然后再实行

耗时一次很有意思的 SQL 优化历程0.057s

效率有所提升,看看实行计划一次很有意思的 SQL 优化历程

,,

优化后的查看语句为一次很有意思的 SQL 优化历程

,,

这里是先做的where条件过滤,再做连表,实行计划还不是固定的,那样大家先看下标准的sql实行顺序:

,,

正常状况下是先join再进行where过滤,但大家这里的状况,假如先join,将会有70w条数据发送join做操,因此先实行where

如没特殊注明,文章均为登烈建站 原创,转载请注明来自http://www.nousuan.com/news/youhua/4/6449.html