美文网首页
Mysql优化会使用到的命令

Mysql优化会使用到的命令

作者: 邮差在行动 | 来源:发表于2020-03-12 11:01 被阅读0次
    • show status查询 SQL 的执行频率
    • explain命令分析低效 SQL的执行计划
    mysql> explain select * from test order by d_date desc limit 0,10;
    
    输出字段

    每个列的简单解释如下:

    1. select_type:表示 SELECT 的类型,常见的取值有 SIMPLE(简单表,即不使用表连接 或者子查询)、PRIMARY(主查询,即外层的查询)、UNION(UNION 中的第二个或 者后面的查询语句)、SUBQUERY(子查询中的第一个SELECT)等。
    2. table:输出结果集的表。
    3. type:表示表的连接类型,性能由好到差的连接类型为 system(表中仅有一行,即 常量表)、const(单表中最多有一个匹配行,例如 primary key 或者 unique index)、 eq_ref(对于前面的每一行,在此表中只查询一条记录,简单来说,就是多表连接 中使用primary key或者unique index)、ref (与eq_ref类似,区别在于不是使用primary key 或者 unique index,而是使用普通的索引)、ref_or_null(与 ref 类似,区别在于 条件中包含对 NULL 的查询) 、index_merge(索引合并优化)、unique_subquery(in 的后面是一个查询主键字段的子查询)、index_subquery(与 unique_subquery 类似, 区别在于 in 的后面是查询非唯一索引字段的子查询)、range(单表中的范围查询)、 index(对于前面的每一行,都通过查询索引来得到数据)、all(对于前面的每一行,都通过全表扫描来得到数据)。
    4. possible_keys:表示查询时,可能使用的索引。
    5. key:表示实际使用的索引。
    6. key_len:索引字段的长度。
    7. rows:扫描行的数量。
    8. Extra:执行情况的说明和描述。
    • show profiles
      5.0.37之后的版本才支持这个命令
      如果执行这个命令没有输出结果,可能是profiles功能关闭了,需要先打开,set profiling = on或者set profiling = 1
      未打开profiles的情况

    执行show profiles后,会有多条记录,查看具体某个query情况:
    show profile for query 5;

    具体可查看官方文档https://dev.mysql.com/doc/refman/8.0/en/show-profiles.html

    • ``

    相关文章

      网友评论

          本文标题:Mysql优化会使用到的命令

          本文链接:https://www.haomeiwen.com/subject/qiyyjhtx.html