zoukankan      html  css  js  c++  java
  • mysql18-Show Profile和全局日志

    1.是什么

      分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数开启后,后续执行的SQL语句都将记录其资源开销,诸如IO,上下文切换,CPU,Memory等等。根据这些开销进一步分析当前SQL瓶颈从而进行优化与调整。相较于explain更加的详细。

    2.官网

    http://dev.mysql.com/doc/refman/5.5/en/show-profile.html

    3.开启profiling

    3.1查看参数

    show variables like 'profiling';

    ON表示开启,如果未开启,设置参数开启

    3.2设置参数开启

    SET GLOBAL profiling = 1

    4.设置profiles 记录数

    show variables like 'profiling_history_size';

    show profiles 默认显示最近15条的sql执行情况,15这个数字由profiling_history_size常量决定,你可以配置为0到100的数字最大支持100,如果设置为0则类似于关闭profiling选项

    5.使用profiles

    5.1查看最近执行的sql列表

    SHOW PROFILES

     可以看到最近的15条的sql的执行情况

    5.2查看某条记录的详情

    show profile [type] for query query_id

    type:  
        ALL                --显示所有的开销信息  
      | BLOCK IO           --显示块IO相关开销  
      | CONTEXT SWITCHES   --上下文切换相关开销  
      | CPU                --显示CPU相关开销信息  
      | IPC                --显示发送和接收相关开销信息  
      | MEMORY             --显示内存相关开销信息  
      | PAGE FAULTS        --显示页面错误相关开销信息  
      | SOURCE             --显示和Source_function,Source_file,Source_line相关的开销信息  
      | SWAPS              --显示交换次数相关开销的信息 
    show profile cpu,block io for query  59    # 59是Query_ID

    5.3几个大消耗的情况

    converting HEAP to MyISAM 查询结果太大,内存都不够用了往磁盘上搬了。

    Creating tmp table 创建临时表

    Copying to tmp table on disk 把内存中临时表复制到磁盘,危险!

    6.全局查询日志

    除了profile ,还提供了全局查询日志。默认关闭,开启后,会记录所有执行的sql。最好不要生产环境使用

    6.1查看参数

    show variables like 'general_log';

    6.2开启

    SET GLOBAL general_log = 1

    6.3全局日志的记录方式
    全局日志可以存放到日志文件中,也可以存放到Mysql系统表中。存放到日志文件中性能更好一些,默认是存放到日志文件中

    6.3.1查看日志存放方式

    show variables like 'log_output';

    6.3.2设置日志存放方式

    set global log_output='TABLE';  #设置放到表中
    set global log_output='FILE'; #设置放到日志文件中

     
    6.3.3在表中,可以select查看

    select * from mysql.general_log;

     BLOB的内容,开启备注即可查看到

    相较于profile ,全局日志的内容很简单,不够详细。

  • 相关阅读:
    UOJ425【集训队作业2018】strings【分块,常数优化】
    UOJ444【集训队作业2018】二分图【构造,结论】
    各种类型转换为字符串类型(ToString())
    ADO.net数据绑定
    关于扫雷游戏学习笔记(二)
    关于扫雷游戏学习笔记(一)
    Luogu P2864 [USACO06JAN]树林The Grove(bfs)
    Luogu P1712 [NOI2016]区间(线段树)
    Luogu P2051 [AHOI2009]中国象棋(dp)
    Luogu P2577 [ZJOI2005]午餐(dp)
  • 原文地址:https://www.cnblogs.com/jthr/p/15393327.html
Copyright © 2011-2022 走看看