mysql一个非常实用解决sql查询优化的函数explain

时间:2023-03-10 06:40:35
mysql一个非常实用解决sql查询优化的函数explain

前言:

  项目中有个表有几万条数据,然后还要关联其他表,查询条件也有点多,再没有其他查询条件下,默认时间查询条件如果是查一年的数据的话,查询时间那是慢得可怕。

  找总监去优化sql,看他用了一个sql函数:explain,把查得慢的表找出来,根据关联的字段建了个索引,就快了很多。

  由于我看到要查的主表加了索引,其他表我就没管(后来才知道,只要关联的表都要加索引,加索引的字段就是关联的字段),没有处理之前用了1分多钟,查2018-01-01  到  2019-03-26日期的数据并查出了4万多条。

  

  1、使用explain函数查看,到底是哪个表拖慢了速度:

    mysql一个非常实用解决sql查询优化的函数explain

  2、每个表都加了索引之后,查1年日期,1000条数据,查询时间只用了0.3秒,不用limit限制查询条数的话,会一共查出4万条数据,查询时间15秒那样还是很慢,所以查1000条数据显示完全够用了,每页10条,都可以显示100页了,没人会翻那么多页,100页数据完全够用。

    mysql一个非常实用解决sql查询优化的函数explain

  3、不限制1000条数据,查整个一年的数据sql代码如下:用了15秒

mysql一个非常实用解决sql查询优化的函数explain