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.

  • 相关阅读:
    远程桌面 终端服务器超出最大连接数的解决方法
    html a标签中调用js中的方法的方法
    英文励志歌曲经典珍藏
    远程桌面 习惯性注销连接,出事了
    小幽默
    MySQL用户权限
    MyBatis Like 模糊查询
    MVC3控制器方法获取Form数据方法
    MVC 3 Razor中的@helper 语法
    MVC3实现多个按钮提交
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/5935894.html
Copyright © 2011-2022 走看看