解决Ubuntu PHP日志中的慢查询需从数据库、PHP代码、系统配置等多方面优化,具体步骤如下:
启用并分析数据库慢查询日志
/etc/mysql/my.cnf)中开启慢查询日志:[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2 # 设置慢查询阈值(秒)
重启MySQL使配置生效:sudo systemctl restart mysql。mysqldumpslow -s t /var/log/mysql/slow.log:按执行时间排序查看慢查询。pt-query-digest /var/log/mysql/slow.log:生成详细分析报告。优化数据库查询
EXPLAIN分析执行计划。优化PHP代码
调整PHP-FPM配置
/etc/php/7.x/fpm/pool.d/www.conf):pm = dynamic
pm.max_children = 50 # 根据服务器资源调整
request_slowlog_timeout = 5s # 记录执行超时的请求
slowlog = /var/log/php-fpm/www-slow.log
重启PHP-FPM:sudo systemctl restart php7.x-fpm。系统级优化
关键操作优先级:先通过慢查询日志定位具体低效SQL,针对性优化数据库索引和查询;再调整PHP代码和配置减少不必要的计算与请求。