SQL执行频率的情况:

查看数据库的 SQL 执行频率(7个下划线):

查看全局:

 

 

查看innoDB的执行情况:

 

 

慢SQL的执行情况:

通过 show processlists 来查看执行的慢SQL

 

 

 

表结构:

 

 

 

 

 

 

 explain 的使用:

 

 字段解释:

id字段:

 

 

 

 select type:

 

 

 

 

 

 

 

 

 

 

type字段:

 

 

根据主键或者唯一键进行索引查询:

 

关联查询,只查询出一条数据:

 

 

根据非唯一索引:

 

 

range:范围查询:where的查询条件出现了范围查询字段。

ALL:

 

 index:

 

 

 

 key,extra的字段:

 

 

 

上边的两个需要考虑进行优化:  

using filesort 需要根据文件的内容进行排序,效率低。

 

 

 下面的优化,使用了索引:

 

 

 

using temporary:

 

 

 

开启 profiles:

 

 

show profiles:

 

 

 

 

 

trace:

 

 

 

 

 

 

 

走不走索引的一些情况分析:

是否走索引:如果 or 后边的字段不是索引字段,则不走索引,改成 and  走索引。

 

 

%类型的模糊查询:

全量查询不走索引。

 

 如果必须以%开头进行模糊查询,则推荐使用覆盖索引来解决问题:

 

 

 

建了索引但是不走索引的情况:

 

 

 

 

 

null 与 not null 走不走索引的问题:

 

 

 

in 与 not in的索引情况:

 

 

 

 单列索引与多列索引:

 

 

 

 使用复合索引:

 

 

 使用三个单列索引:

 

 

 

  order by:

 

 

 

 

 

 

 

 

 

 

 关于对 order by 的优化:

group by:

1999的标准:

 

 

 

 

 

 再次查询:

 

 改为1992的标准:

 

解决方案:

 

 

 

group by 对于索引的对应情况:

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2020-09-21 21:36  小勇DW3  阅读(78)  评论(0)    收藏  举报