解決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代碼和配置減少不必要的計算與請求。