Mysql慢查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql慢查询相关的知识,希望对你有一定的参考价值。

mysql默认情况下慢查询是未开启的。开启MySQL慢查询日志,让MySQL记录查询超过指定时间的SQL语句,定位分析性能瓶颈,可优化数据库系统性能或优化SQL语句。

  • 慢查询参数查询
    mysql> show variables like ‘slow_query%‘;
    +---------------------+----------------------------------------+
    | Variable_name       | Value                                  |
    +---------------------+----------------------------------------+
    | slow_query_log      | OFF                                    |
    | slow_query_log_file | /var/lib/mysql/test-mysql-slow.log |
    +---------------------+----------------------------------------+
    mysql> show variables like ‘long_query_time‘;
    +-----------------+-----------+
    | Variable_name   | Value     |
    +-----------------+-----------+
    | long_query_time | 10.000000 |
    +-----------------+-----------+

    参数:
    slow_query_log #慢查询开启状态
    slow_query_log_file #慢查询日志文件存储路径,需要MySQL的运行帐号的可写权限
    long_query_time #慢查询时长,超过设定的sql语句时长写入到慢查询文件中

  • 开启设置
    方法一、全局变量设置
    mysql> set global slow_query_log=‘ON‘;   #全局变量 slow_query_log 设置为 ON 开启
    mysql> set global slow_query_log_file=‘/var/lib/mysql/test-mysql-srv-slow.log‘;   #慢日志查询存储路径
    mysql> set global long_query_time = 30;   #设置超过的时长为慢查询SQL

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

    slow_query_log = ON
    slow_query_log_file = /var/lib/mysql/test-mysql-srv-slow.log
    long_query_time = 30

    重启MySQL服务

    systemctl restart mysqld.service

以上是关于Mysql慢查询的主要内容,如果未能解决你的问题,请参考以下文章

mysql数据库插入数据很慢

Logstash分析MySQL慢查询日志

MySQL慢查询日志分析

什么是慢查询?

开启mysql慢查询日志并使用mysqldumpslow命令查看

MySQL 8.0.15 大坝慢选查询