MySQL慢查询

什么是MySQL慢查询

  • MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日记记录,用来记录在MySQL中响应时间超过阀值的语句。
  • 运行时间超过long_query_time值得SQL语句,则会被记录刀慢查询日志中。
  • long_query_time的默认值为10,意思是记录运行10秒以上的语句。

查找那些语句慢

# 比如,得到返回记录集最多的10个SQL。
mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log

# 得到访问次数最多的10个SQL
mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log

# 得到按照时间排序的前10条里面含有左连接的查询语句。
mysqldumpslow -s t -t 10 -g “left join” /database/mysql/mysql06_slow.log

# 另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。
mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

explain分析慢查询原因

  • 使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。
  • EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索的排序的…等等
  • explain的执行效果
mysql> explain select * from subject where id = 1 \G
******************************************************
           id: 1
  select_type: SIMPLE
        table: user             # 表示访问那个表
   partitions: NULL
         type: const
possible_keys: PRIMARY
          key: PRIMARY           # 使用了主键索引,如果为null代表没有使用索引
      key_len: 4                # 表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度
          ref: const
         rows: 1
     filtered: 100.00             # 查询的表行占表的百分比
        Extra: NULL
******************************************************

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值