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 对于索引的对应情况:





浙公网安备 33010602011771号