MySQL慢查询日志和 Explain命令

一、慢查询日志:

  用来记录在MySQL中响应时间超过阀值的语句,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。long_query_time的默认值为10。Mysql数据库默认不开启慢查询日志。

慢查询相关语句:

查看慢查询日志是否开启  :show variables like 'slow_query_log'; (OFF 为关闭 ON为开启)

开启慢查询日志 :set global slow_query_log=1;

设置慢查询日志时间:set global long_query_time=20;

查询慢日志时间设置:show variables like 'long_query_time';

记录没有使用索引的sql 语句:set global log_queries_not_using_indexes=on;

日志分析工具:

mysqldumpslow:安装完MySQL后,默认带有mysqldumpslow

pt-query-digest:与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善。

二、Explain命令

exlain: exlain 命令用于SQL语句的查询执行计划

用法:explain+sql语句

执行计划的参数说明:

id:查询的序号

select_type:查询类型,用于区别普通查询,联合查询,子查询等的复杂查询

table:引用的表

type:显示使用了何种类型。从好到差const,eq_reg,ref,range,index和ALL

possible_keys:表示mysql可以从中选择查找表中的行的索引。如果此列是NULL,则没有相关的索引

key:实际使用的索引。空,没有使用索引

key_len: 表示索引中使用的字节数。不损失精度下,越短越好。

ref: 显示索引的哪一列被使用

rows: 找到所需的记录所需要读取的行数

Extra:该列包含 MySQL 查询的详细信息,重要的额外信息(Using temporary:表示需要创建临时表以满足需求;

Using filesort:表示无法利用索引完成排序)

需要注意的参数:

type:访问类型,如果type为 ALL 时,表示预计会进行全表扫描 

key:使用的索引

rows:最大扫描的列数

extra: 注意Using filesort,Using tempoary


 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值