美文网首页js css htmlmysql
mysql开启慢查询sql日志

mysql开启慢查询sql日志

作者: flyjar | 来源:发表于2022-05-17 16:44 被阅读0次

MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能。

开启状态:
查看是否开启慢查询功能:

mysql> show variables like 'slow_query%';
+---------------------+------------------------------------+
| Variable_name       | Value                              |
+---------------------+------------------------------------+
| slow_query_log      | OFF                                |
| slow_query_log_file | /var/lib/mysql/instance-1-slow.log |
+---------------------+------------------------------------+
2 rows in set (0.01 sec)
mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

说明:

slow_query_log 慢查询开启状态(on:已开启 off:未开启 )
slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)
long_query_time 查询超过多少秒才记录

配置
临时配置:默认没有开启慢查询日志记录,通过命令临时开启:

mysql> set global slow_query_log='ON';
Query OK, 0 rows affected (0.00 sec)
 ``
```linux
mysql> set global slow_query_log_file='/var/lib/mysql/instance-1-slow.log';
Query OK, 0 rows affected (0.00 sec)
mysql> set global long_query_time=2;
Query OK, 0 rows affected (0.00 sec)

永久配置:修改配置文件达到永久配置状态:

/etc/mysql/conf.d/mysql.cnf
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/instance-1-slow.log
long_query_time = 2

配置好后,重新启动 MySQL 即可。

慢sql日志测试
通过运行下面的命令,达到问题 SQL 语句的执行:

mysql> select sleep(2);
+----------+
| sleep(2) |
+----------+
|        0 |
+----------+
1 row in set (2.00 sec)

然后查看慢查询日志内容:


$ cat /var/lib/mysql/instance-1-slow.log
/usr/sbin/mysqld, Version: 8.0.13 (MySQL Community Server - GPL). started with:
Tcp port: 3306  Unix socket: /var/run/mysqld/mysqld.sock
Time                 Id Command    Argument
/usr/sbin/mysqld, Version: 8.0.13 (MySQL Community Server - GPL). started with:
Tcp port: 3306  Unix socket: /var/run/mysqld/mysqld.sock
Time                 Id Command    Argument
# Time: 2022-05-11T00:38:09.347108Z
# User@Host: root[root] @ localhost [::1]  Id:     2
# Query_time: 2.010401  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1652229489;
select sleep(2);

日志参数解析:

查询耗时(Query_time):2.010401 秒
锁定时间(Lock_time):0.000000 秒
检索记录行数(Rows_examined):0条
返回记录数(Rows_sent):1条

相关文章

  • 2018-02-06 技术笔记

    开启mysql慢查询日志 介绍开启慢查询,可以查看超过指定时间执行的SQL语句,有目标的优化SQL查询效率。 参数...

  • mysql慢查询日志

    mysql慢查询日志 1.慢查询日志 2.查看配置 3.临时开启慢查询日志 4.通过sql语句检查 5.关闭慢查询...

  • mysql查询优化 - 慢查询

    mysql查询速度优化思路 开启慢查询日志 查看导致阻塞的sql语句 重现场景, 单独测试 mysql 慢查询分析...

  • MySQL慢查询日志相关笔记

    MySQL优化SQL,针对慢SQL语句的查询及相关配置。相关命令: 需要永久开启慢SQL查询日志,需要在my.in...

  • mysql日志相关参数调整设置

    慢sql日志打印 查询是否开启慢日志:show variables like '%query%'; 慢sql开启 ...

  • 数据库性能优化-定位满查询

    一、通过慢查询日志获取存在性能问题的SQL 开启mysql数据库慢查询日志和not using index的查询。...

  • MySQL 慢查询分析实践

    mysql默认未开启慢查询记录功能;默认慢查询时间为10秒。 一、mysql开启慢查询日志记录 二、利用mysql...

  • 查询截取分析与优化

    分析步骤: 慢查询日志与捕获 explain+慢查询日志分析 show profile查询sql在mysql服务器...

  • 开启MySQL慢查询日志

    查询慢日志开关是否开启 打开慢查询日志开关 再次查询,发现开关打开了 查询mysql安装路径 慢查询日志默认是放在...

  • mysql之数据库优化入门

    开启慢查询日志: 进入mysql,输入以下语句 查看是否开启了慢查询日志: show variables like...

网友评论

    本文标题:mysql开启慢查询sql日志

    本文链接:https://www.haomeiwen.com/subject/avenurtx.html