• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    mysql记录耗时的sql实例详解

    mysql记录耗时的sql

    mysql可以把耗时的sql或未使用索引的sql都记录在slow log里,供优化分析使用。

    1.mysql慢查询日志启用:

    mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢?

    mysql> show variables like 'log_slow_queries';
    +------------------+-------+
    | Variable_name | Value |
    +------------------+-------+
    | log_slow_queries | OFF | 
    +------------------+-------+
    1 row in set (0.01 sec)
    
    mysql> 
    

    这说明slow log功能没有启用,要启用需要修改mysql的配置文件,在配置文件"[mysqld]"里添加如下俩参数:

    long_query_time=1
    log-slow-queries=/var/mysql/logs/slow.log

    说明

    long_query_time

    此参数表示的是慢查询的度量时间,单位是秒,最小是1,缺省值是10,凡是执行时间超过long_query_time的sql语句都会记录到慢查询日志中

    log-slow-queries[=file_name]

    file_name参数可选,缺省值是host_name-slow.log,如果指定了file_name参数的话,mysql就会把慢查询的日志记录到file_name所设定的文件中,如果file_name提供的是一个相对路径,mysql会把日志记录到mysql的data目录中,这个参数只能在配置文件里添加,无法在命令行里执行。

    2.将未使用索引查询也记录到slow log中的配置

    在mysql的启动配置文件或命令行参数中增加“log_queries_not_using_indexes” 参数就可以把未使用索引查询语句添加到slow log里了。

    样例如下:

    [root@localhost mysqlsla-2.03]# more /etc/my.cnf 
    [mysqld]
    datadir=/var/lib/mysql
    log_bin=/tmp/mysql/bin-log/mysql-bin.log
    log_bin=ON
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    # Default to using old password format for compatibility with mysql 3.x
    # clients (those using the mysqlclient10 compatibility package).
    old_passwords=1
    
    
    log_slow_queries=/tmp/127_slow.log
    long_query_time=1
    log_queries_not_using_indexes
    
    .......
    
    

    重启mysql后,检查结果如下:

    mysql> show variables like 'log_slow_queries';
    +------------------+-------+
    | Variable_name | Value |
    +------------------+-------+
    | log_slow_queries | ON | 
    +------------------+-------+
    1 row in set (0.00 sec)
    
    mysql> show variables like 'long_query_time';
    +-----------------+-------+
    | Variable_name | Value |
    +-----------------+-------+
    | long_query_time | 2  | 
    +-----------------+-------+
    1 row in set (0.00 sec)
    
    mysql>
    
    

    以上就是mysql记录耗时的sql实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    您可能感兴趣的文章:
    • 5个保护MySQL数据仓库的小技巧
    • mysql中url时区的陷阱该如何规避详解
    • CentOS Yum编译安装MySQL 5.6
    • MySQL利用AES_ENCRYPT()与AES_DECRYPT()加解密的正确方法示例
    • MySQL中预处理语句prepare、execute与deallocate的使用教程
    • PDO操作MySQL的基础教程(推荐)
    上一篇:MySQL和连接相关的timeout 的详细整理
    下一篇:MySql插入数据成功但是报[Err] 1055错误的解决方案
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    mysql记录耗时的sql实例详解 mysql,记录,耗时,的,sql,实例,