mysql慢查詢日誌

來源:互聯網
上載者:User

標籤:set   最小值   關於   意思   rbo   rip   語句   包括   statement   

mysql慢查詢日誌是mysql提供的一種日誌記錄,它用來記錄sql執行超過long_query_time秒的SQL語句。long_query_time的最小值和預設值分別為0和10。 意思是運行超過10秒以上的sql語句。該值可以指定為微秒。 對於記錄到檔案,寫入時間包括微秒部分。 為了記錄到表格,唯寫入整數次。 微秒的部分被忽略。預設情況下,慢查詢日誌是被禁用的,要自己手動開啟。

相關參數

slow_query_log [= {0 | 1}]:是否開啟慢查詢日誌,0為關閉,1為開啟。

long_query_time:慢查詢閾值,當查詢時間多於設定的閾值時,記錄日誌。

slow_query_log_file:提定日誌目標。可以不設定該參數,系統則會預設給一個預設的檔案host_name-slow.log

log-output[={FILE|TABLE}]:指定日誌存到檔案,還是表格。

log_queries_not_using_indexes:未使用索引的查詢也被記錄到慢查詢日誌中(可選項)。

log-slow-admin-statements:在寫入慢查詢日誌的語句中包含慢管理語句(可選項)。

min_examined_row_limit:檢查少於此行數的查詢不會記錄到慢速查詢日誌中。

慢查詢配置

mysql> show variables  like ‘%slow_query_log%‘;+---------------------+----------------------------------------+| Variable_name       | Value                                  |+---------------------+----------------------------------------+| slow_query_log      | ON                                     || slow_query_log_file | /usr/local/mysql/var/huosuSDK-slow.log |+---------------------+----------------------------------------+2 rows in set (0.00 sec)

slow_query_log的值為OFF表示慢查詢禁用,ON表示慢查詢開啟。

set global slow_query_log=1

全域開啟慢查詢,但mysql如果重啟,為失效。如果要永久生效,得在/ect/my.cnf下配置

log-output=FILE 儲存檔案slow_query_log=1 開啟慢查詢long_query_time=2 時間2秒log_queries_not_using_indexes=1 沒有索引的也記錄

然後重啟mysql。

如果你想查詢有多少條慢查詢記錄,可以使用系統變數。

show global status like ‘%Slow_queries%‘;

也可以用工具官方提供的工具來分析慢查詢

mysqldumpslow

mysqldumpslow解析MySQL慢查詢記錄檔並列印其內容摘要。

通常情況下,mysqldumpslow組查詢除了數字和字串資料值的特定值之外是相似的。 顯示匯總輸出時,將這些值“提取”為N和“S”。 -a和-n選項可用於修改值抽象行為。

像這樣調用mysqldumpslow:

shell> mysqldumpslow [options] [log_file ...]

mysqldumpslow支援以下選項。

Format Description
-a 不要把所有的數字都抽象成N和字串S
-n 至少指定數位抽象數字
--debug 編寫調試資訊
-g 只考慮符合模式的語句
--help 顯示協助資訊並退出
-h 記錄檔名中的伺服器的主機名稱
-i 伺服器執行個體的名稱
-l 不要從總時間中減去鎖定時間
-r 顛倒排序次序
-s 如何排序輸出
-t 僅顯示第一個數字查詢
--verbose 詳細模式

  • --help
    顯示協助資訊並退出
  • -a
    不要把所有的數字都抽象成N和字串S
  • --debug, -d
    編寫調試資訊
  • -g pattern
    只考慮匹配(grep-style)模式的查詢。
  • -h host_name
    MySQL伺服器的主機名稱為 -slow.log檔案名稱。 該值可以包含萬用字元。 預設值是(全部匹配)。
  • -i name
    伺服器執行個體的名稱(如果使用mysql.server啟動指令碼)。
  • -l
    不要從總時間中減去鎖定時間。
  • -n N
    抽象號碼中至少有N位元字。
  • -r
    顛倒排序次序。
  • -s sort_type
    如何排序輸出。 sort_type的值應該從以下列表中選擇:
    • t, at: 按查詢時間或平均查詢時間排序
    • l, al: 按鎖定時間或平均鎖定時間排序
    • r, ar: 按發送的行或發送的平均行進行排序
    • c: 按數量排序
      預設情況下,mysqldumpslow按平均查詢時間排序(相當於-s at)。
  • -t N
    只顯示輸出中的前N個查詢。
  • --verbose, -v
    詳細模式。 列印關於該程式的更多資訊。

mysql慢查詢日誌

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.