明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

MySQL慢查詢日志相關的設置與使用

[摘要]MySQL慢查詢日志提供了超過指定時間閾值的查詢信息,為性能優(yōu)化提供了主要的參考依據(jù),是一個非常實用的功能,MySQL慢查詢日志的開啟和配置非常簡單,可以指定記錄的文件(或者表),超過的時間閾值等就...

MySQL慢查詢日志提供了超過指定時間閾值的查詢信息,為性能優(yōu)化提供了主要的參考依據(jù),是一個非常實用的功能,
MySQL慢查詢日志的開啟和配置非常簡單,可以指定記錄的文件(或者表),超過的時間閾值等就可以記錄到慢sql了,
實話講,相比較sqlserver的trace或者擴展事件(雖然此二者的作用并非僅僅如此),MySQL的配置總是給人一種非常清爽的感覺。

  1,慢查詢日志的打開正常情況下,只需要在配置文件中增加slow_query_log = 1配置,即打開慢查詢日志,未指定slow_query_log_file的情況下,會自動生成一個以主機名+‘slow’.log 的文件MySQL慢查詢日志相關的配置和使用

  2,默認情況下記錄慢查詢的時間閾值為10s

  MySQL慢查詢日志相關的配置和使用

  默認情況下,指定slow_query_log = 1的情況其啟動MySQL,即可打開慢查詢,自動生成一個默認的以主機名++‘slow’.log 的文件來記錄超過執(zhí)行超過10s的慢查詢。

  也可以顯式指定慢查詢的日志文件名稱(不存在會自動創(chuàng)建)和記錄慢查詢的時間閾值(非默認的10s)。

  MySQL慢查詢日志相關的配置和使用

  注意在配置文件中指定long_query_time的時候,不需要時間單位,只需要一個值,比如1就代表1s,如果帶了時間單位,服務將無法啟動。

  MySQL慢查詢日志相關的配置和使用

  如下是一個記錄到日志文件中的慢sql的示例

  MySQL慢查詢日志相關的配置和使用

  3,記錄慢查詢日志到表

  配置:需要添加一個log_output的配置,就可以將慢查詢記錄到表中了

MySQL慢查詢日志相關的配置和使用

  mysql庫下面有一個默認的slow_log表,可以直接將slow_query_log_file = slow_log,即可將慢查詢日志記錄到表中。

  MySQL慢查詢日志相關的配置和使用

  記錄到的slow sql如下,可以發(fā)現(xiàn)sql_text是一個二進制的信息,并非原始的sql文本MySQL慢查詢日志相關的配置和使用

  可以通過CONVERT函數(shù)轉換一下即可。

  MySQL慢查詢日志相關的配置和使用

關于慢查詢記錄到日志文件和表中的區(qū)別:

  1,慢查詢記錄到日志文件和表中,記錄本身差別不大,如果是記錄在表中,慢查詢的執(zhí)行時間信息無法精確到微妙,

   2,如果將慢查詢信息記錄在表中,方便查詢,但因為是結構化的數(shù)據(jù),可能會比記錄在慢查詢日志文件中(平面文本文件)要慢一點點(個人猜測),如果是記錄到文件,需要mysqldumpslow工具解析。

  3,慢查詢不記錄執(zhí)行失敗的查詢,比如long_query_time設置為10(10秒鐘),一個查詢超過了10秒鐘,但是因為其他原因執(zhí)行失敗,MySQL的慢查詢將無法記錄此查詢信息。

以上就是MySQL慢查詢日志相關的配置和使用 的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。