zoukankan      html  css  js  c++  java
  • 如何获取有性能问题的SQL

    1.通过用户反馈获取存在性能问题的SQL.

     

    2.通过慢查日志获取存在性能的SQL.

     

    启动慢查日志

    slow_query_log=on

     

    set global slow_query_log=on;

    image

    slow_query_log_file 指定慢查日志存储路径及文件

    默认情况保存在mysql的数据目录中,最好日志存储和数据存储分开。

    long_query_time

    image

    指定记录慢查日志SQL执行时间的阀值,单位为秒,默认值为10秒。精确到微秒,

    如果为一毫秒这个值为 0.001 。

    记录的语句包括

    1.查询语句

    2.数据修改语句

    3.已经回滚的SQL

     

    log_queries_not_using_indexes 是否记录未使用索引的SQL

     

    慢查日志中记录的内容:

    image

    第一行记录了:

    用户信息,线程ID号 用户信息 sbtest ,线程ID为 17

    第二行 :记录了查询时间

    第三行 :锁的时间

    第四行 : 返回的记录行数

    第五行: 扫描的行数

    第六行 : 执行的时间

    第七行 : 执行的语句

     

    常用慢查询日志分析工具

    1.mysqldumpslow

    汇总除查询条件外其他完全相同的SQL,并将分析结果按照参数中指定的顺序输出。

    mysqldumpslow –s r –t 10 slow.log

    -s order (c,t,l,r,at,al,ar)

    c: 总的次数

    t:总的时间

    l:锁的时间

    r: 总数据行

    at,al,ar: t,l,r 的平均数

    at 总时间 /总次数

     

    -t top 指定取前几条作为结果输出

     

    2.pt-query-digest

    pt-query-digest –explain -h=127.0.0.1,u=root,p=root slow.log>slow.report

    可以包括执行计划。

     

    3.实时获取性能的问题的SQL

     

    image

     

    select id,user,host,db,command ,time,state,info from information_schema.processlist where time>60;

    查询服务器中查询时间超过60秒的SQL.

  • 相关阅读:
    博客园
    未释放的已删除文件
    ssh连接缓慢
    剑指 Offer 38. 字符串的排列
    剑指 Offer 37. 序列化二叉树
    剑指 Offer 50. 第一个只出现一次的字符
    剑指 Offer 36. 二叉搜索树与双向链表
    剑指 Offer 35. 复杂链表的复制
    剑指 Offer 34. 二叉树中和为某一值的路径
    剑指 Offer 33. 二叉搜索树的后序遍历序列
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/5935894.html
Copyright © 2011-2022 走看看