开发者社区> 问答> 正文

如何开启MySQL慢查询功能

请问如何开启MySQL慢查询功能?

展开
收起
开发者说 2019-07-15 16:30:53 957 0
2 条回答
写回答
取消 提交回答
  • 您好!
    设置方法

    方法一:全局变量设置
    将 slow_query_log 全局变量设置为“ON”状态

    mysql> set global slow_query_log='ON'; 

    设置慢查询日志存放的位置

    mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log';

    查询超过1秒就记录

    mysql> set global long_query_time=1;

    方法二:配置文件设置
    修改配置文件my.cnf,在[mysqld]下的下方加入

    [mysqld]
    slow_query_log = ON
    slow_query_log_file = /usr/local/mysql/data/slow.log
    long_query_time = 1

    重启MySQL服务
    2019-07-15 17:47:18
    赞同 展开评论 打赏
  • 运行 MySQL 时,查询速度比较慢的语句对数据库的影响非常大,这些慢语句大多是写的不够合理或者大数据环境下多表并发查询造成的。MySQL 自带慢查询功能,能记录查询时间超过参数 long_query_time 的值的语句,用于定位执行慢的 SQL 语句。您可以优化慢查询语句从而优化 MySQL。

    操作步骤

    1. 远程连接 并登录到 Linux 实例。

    2. 执行命令 ls 查找 MySQL 配置文件,通常为 my.ini。

    3. 执行命令 find $PWD -type f | grep "您查到的 MySQL 配置文件" 查找文件路径。

    4. 执行命令 cd 您查找到的文件路径

    5. 进入 MySQL 执行命令 show variables like "%long%"; 查看慢查询的默认时间。

    6. 执行命令 vi 您查到的 MySQL 配置文件,按 i 进入编辑模式,在 [mysqld] 小节处粘贴并复制以下内容,然后按 Esc 退出编辑模式,输入 :wq 保存退出。

           
      1. log-slow-queries = /var/lib/mysql/mysql-slow.log #表示慢查询的日志存储目录。此目录文件一定要有写权限。
      2. long_query_time = 2 #MySQL 将记录下所有执行时间超过 2 条的 SQL 语句。

    7. 进入 MySQL 执行命令 set global slow_query_log='ON'; 启用慢查询。

    8. 进入 MySQL 执行命令 show variables like "%slow%"; 查看是否已开启慢查询,如果 log_slow_queries 状态为 ON,则表示已经开启慢查询。

    9. 执行命令 service mysql restart 重新启动 MySQL 服务。

    2019-07-22 11:27:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像