MySQL数据库中,每条SQL查询都会消耗一定的时间资源。为了发现和定位性能瓶颈,必须找出执行时间较长的SQL语句。MySQL的慢查询日志功能能够记录所有执行时间超过指定阈值的SQL语句。
通过分析慢日志,数据库管理员和开发人员能够精准定位慢查询语句及其执行时间,从而针对性地优化数据库性能。
通过编辑MySQL的配置文件 my.cnf,添加以下参数以开启慢查询日志功能:
slow_query_log = 1 # 开启慢查询日志 slow_query_log_file = /var/log/mysql/mysql-slow.log log_queries_not_using_indexes = 1 # 记录未使用索引的SQL语句
参数说明:
修改配置文件后,执行以下命令重启MySQL,使配置生效:
service mysql restart
重启后,可以通过以下命令实时查看慢查询日志:
cd /var/log/mysql/ tail -f mysql-slow.log
在 php.ini 文件中添加或修改以下参数,启用PHP慢日志:
slowlog = /var/log/php/php-slow.log request_slowlog_timeout = 10 # 单位为秒,超过此时间的请求会被记录
参数说明:
修改配置后,执行以下命令重启PHP服务:
sudo service php-fpm restart
服务重启后,可使用以下命令查看PHP慢日志:
cd /var/log/php/ tail -f php-slow.log
开启MySQL和PHP的慢日志功能,有助于快速定位数据库及脚本执行的性能瓶颈,方便针对性优化,提升整体系统的响应速度和稳定性。