慢查詢日誌(mysql)

參考html

針對mysql的優化,mysql提供了慢查詢日誌的支持。mysql的慢查詢是mysql提供的一種日誌記錄,它用來記錄mysql中響應時間超過閥值的sql語句,某個sql運行時間若是超過設置的閥值(long_query_time),就會被記錄到慢查詢日誌中。閥值默認值是10s,默認狀況下,mysql數據庫並不會啓動慢查詢日誌,須要手動來設置這個參數(slow_query_log)。慢查詢日誌支持將日誌寫入文件,也支持將日誌寫入數據庫表。通常不建議開啓慢查詢日誌,由於慢查詢日誌或多或少帶來必定的性能影響。mysql

慢查詢日誌相關參數sql

1 slow_query_log    :是否開啓慢查詢日誌,1表示開啓,0表示關閉。
2 log-slow-queries  :舊版(5.6如下版本)MySQL數據庫慢查詢日誌存儲路徑。能夠不設置該參數,系統則會默認給一個缺省的文件host_name-slow.log
3 slow-query-log-file:新版(5.6及以上版本)MySQL數據庫慢查詢日誌存儲路徑。能夠不設置該參數,系統則會默認給一個缺省的文件host_name-slow.log
4 long_query_time :慢查詢閾值,當查詢時間多於設定的閾值時,記錄日誌。
5 log_queries_not_using_indexes:未使用索引的查詢也被記錄到慢查詢日誌中(可選項)。
6 log_output:日誌存儲方式。log_output='FILE'表示將日誌存入文件,默認值是'FILE'。log_output='TABLE'表示將日誌存入數據庫,這樣日誌信息就會被寫入到mysql.slow_log表中。MySQL數據<br>庫支持同時兩種日誌存儲方式,配置的時候以逗號隔開便可,如:log_output='FILE,TABLE'。日誌記錄到系統的專用日誌表中,要比記錄到文件耗費更多的系統資源,所以對於須要啓用慢查詢日誌,又需<br>要可以得到更高的系統性能,那麼建議優先記錄到文件。
View Code

 

 

 

使用set命令開啓慢查詢日誌,mysql重啓以後會失效,若是要永久生效,將配置寫入到mysql的配置文件my.cnf或my.ini文件中數據庫

開啓慢查詢日誌以後,執行時間超過閥值的sql會被記錄下來,在mysql5.1以前,long_query_time存的是整數,5.1開始,long_query_time以微妙記錄sql運行時間ide

將閥值由10s修改成2.13s工具

log_output參數指定日誌的存儲方式,FILE表示將日誌存入文件,默認值是FILE。TABLE表示將日誌存入數據庫,這樣日誌信息會被寫入到mysql.slow_log表中。mysql數據庫支持同時兩種日誌方式記錄,配置的時候用逗號分隔便可。日誌記錄到系統的專用日誌表中要比記錄到文件耗費更多的系統資源,對於慢查詢日誌,建議優先記錄到文件中。性能

將日誌存儲方式修改成同時支持兩種存儲方式優化

慢查詢日誌信息spa

文件3d

系統表

系統變量log_slow_admin_statements表示是否將慢管理語句好比analyze table和alter table等計入慢查詢日誌

想查詢有多少條慢查詢記錄,能夠使用系統變量

 

分析慢查詢日誌若是單純去看,很耗費時間,效率不高,能夠使用mysqldumpslow或pt_query_digest工具,具體參考

相關文章
相關標籤/搜索