首頁 > 資料庫 > mysql教程 > MySQL慢查詢日誌的配置以及使用教學課程詳解

MySQL慢查詢日誌的配置以及使用教學課程詳解

黄舟
發布: 2017-09-19 11:01:21
原創
1505 人瀏覽過

慢查詢日誌用來記錄一些過慢的查詢語句,可以幫助管理員分析問題所在,以下這篇文章主要給大家介紹了關於MySQL慢查詢日誌的配置與使用教程,文中透過範例程式碼介紹的非常詳細,需要的朋友可以參考下。

前言

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

一、慢查詢日誌的開啟

#正常情況下,只需要在設定檔中增加slow_query_log = 1配置,也就是開啟慢速查詢日誌,未指定slow_query_log_file的情況下,會自動產生以主機名稱+'slow'.log 的檔案。

  

二、預設情況下記錄慢查詢的時間閾值為10s

  

#預設情況下,指定slow_query_log = 1的情況其啟動MySQL,即可開啟慢查詢,自動產生一個預設的以主機名稱++'slow'.log 的檔案來記錄超過執行超過10s的慢查詢。

也可以明確指定慢查詢的日誌檔案名稱(不存在會自動建立)和記錄慢查詢的時間閾值(非預設的10s)。

  

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

  

如下是一個記錄到日誌檔案中的慢sql的範例

  

#三、記錄慢查詢日誌到表

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

mysql函式庫下面有一個預設的slow_log表,可以直接將slow_query_log_file = slow_log,即可將慢速查詢日誌記錄到表中。

  

記錄到的slow sql如下,可以發現sql_text是一個二進位的信息,並非原始的sql文字

  

#可以透過CONVERT函數轉換一下即可。

  

關於慢查詢記錄到日誌檔案和表格中的區別:

  1、慢查詢記錄到日誌檔案和表格中,記錄本身差異不大,如果是記錄在表中,慢查詢的執行時間資訊無法精確到微妙,

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

  3、慢查詢不記錄執行失敗的查詢,例如long_query_time設定為10(10秒鐘),一個查詢超過了10秒鐘,但因為其他原因執行失敗,MySQL的慢查詢將無法記錄此查詢資訊。

總結

#

以上是MySQL慢查詢日誌的配置以及使用教學課程詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板