如何开启mysql和php慢日志

一、慢日志简述

在MySQL数据库中,每个查询都需要消耗一定的时间资源。为了定位数据库性能瓶颈,需要找出执行时间较慢的SQL语句。MySQL提供了慢日志(Slow Query Log)来记录所有执行时间超过阈值的SQL语句。

通过慢日志,可以定位到具体的查询语句和执行时间,以帮助DBA或开发人员优化MySQL数据库的性能。

二、开启MySQL慢查询日志

1. 修改MySQL配置文件

我们可以通过修改MySQL的配置文件(my.cnf)来开启慢日志的功能。在配置文件中添加以下参数:

slow_query_log = 1 #开启慢查询日志

slow_query_log_file = /var/log/mysql/mysql-slow.log

log_queries_not_using_indexes = 1 #记录未使用索引的SQL语句

* slow_query_log:表示是否开启慢查询日志,1表示开启,0表示关闭;

* slow_query_log_file:指定慢查询日志文件的路径;

* log_queries_not_using_indexes:表示是否记录未使用索引的SQL语句,1表示记录,0表示不记录。

2. 重启MySQL服务器

修改完my.cnf配置文件后,需要重启MySQL服务器以使配置生效。

```

service mysql restart #重启MySQL服务

```

3. 查看慢日志文件

重启MySQL服务器后,可以查看MySQL慢日志文件是否已经生成。默认情况下,MySQL慢查询日志文件保存在/var/log/mysql/路径下。

```

cd /var/log/mysql/

tail -f mysql-slow.log #实时监控mysql-slow.log日志

```

三、开启php慢日志

1. 修改php.ini配置文件

我们可以通过修改php.ini文件来开启php的慢日志功能。在php.ini文件中添加以下参数:

```

php.ini

slowlog = /var/log/php/php-slow.log

request_slowlog_timeout = 10 (单位秒,设置超时时间)

```

* slowlog:指定慢查询日志文件的路径;

* request_slowlog_timeout:表示超时时间,单位为秒。超过这个时间的脚本将会被认为是慢脚本,并记录到慢日志中。

2. 重启php-fpm

修改完php.ini配置文件后,需要重启php-fpm服务使配置生效。

```

sudo service php-fpm restart

```

启动调试模式:

/temp/test.php?XDEBUG_SESSION_START=1

4. 查看慢日志文件

重启php-fpm服务后,可以查看php慢日志文件是否已经生成。默认情况下,php慢查询日志文件保存在/var/log/php/路径下。

```

cd /var/log/php/

tail -f php-slow.log #实时监控php-slow.log日志

```

四、总结

通过开启MySQL和php的慢查询日志,我们可以更加直观地了解到MySQL和php的执行情况,以便更好地进行性能优化工作。

五、致谢

本篇文章参考于 https://blog.csdn.net/liuxianyou666/article/details/101589462,感谢作者的无私分享。

后端开发标签