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的慢日誌功能,有助於快速定位數據庫及腳本執行的性能瓶頸,方便針對性優化,提升整體系統的響應速度和穩定性。