MySQL_MySQL查詢截取分析之慢查詢日誌

1.引入

   當我們通過我們編寫的sql去操作MySQL數據庫的時候,我們會發現由於SQL語句本身的原因,部分的SQL語句的執行會比較慢,從而會導致整個系統的運行不流暢。那麼如果說MySQL提供一個功能,專門給我們解決把執行的慢的那一部分語句給標註出來。這樣我們解決問題就會更加的快速。那麼下面呢,我們就一起來看一下MySQL提供的慢查詢日誌。

 

2.什麼是MySQL的慢查詢日誌?

   所謂的慢查詢日誌,就是和其字面意思一樣,是MySQL數據庫提供的一種日誌記錄。它主要是用於記錄在MySQL中響應時間超過闕值的語句。具體的就是指運行時間超過long_query_time值的SQL。就會被記錄到日誌中去。long_query_time默認的值大小是10。默認的情況下,MySQL數據庫沒有開啓慢查詢日誌,需要我們手動來設置這一個參數。當然,如果不是調優的需要,一般是不建議開啓這一個參數。因爲開啓慢查詢日誌會佔用空間。這樣或多或少會帶來一定的性能的影響。

 

3.如何查看MySQL的慢查詢日誌是否開啓?

 (1).查看是否開啓:

show variables like '%low_query_log%';

查詢結果爲:

(2).如何開啓?

set global slow_query_log = 1;

查看結果:

注意:設置開啓慢查詢日誌僅僅只對當前的操作有效,如果需要永久的生效,可以在配置文件中設置如下參數。但是一般這樣的操作是屬於運維經理或者是專業的DBA來操作的。

slow_query_log=1
show_query_log_file=C:\ProgramData\MySQL\MySQL Server 5.5\Data\DYHGUJX80GYHV89-slow.log 

4.什麼樣子的sql纔會被記錄到慢查詢日誌文件中呢,如何使用?

   一般慢的定義是有參數long_query_time控制,默認值爲10.我們先在命令界面查看其大小以及對應的情況:

show variables like '%long_query_time%';

查詢結果爲:

也就是說這一個SQL語句執行的時間大於10秒就會被記錄到我們指定的文件中去。

一般情況系統在運行的時候一條SQL執行10秒幾乎是不可能的。那麼我們就需要去調整這一個閾值。

調整使用如下命令:

set global long_query_time = 2;

新開一個會話:再次查看閾值:

5.測試

   由於沒有足夠大的數據量用來測試。那麼我們使用線程的方式來實現延時執行SQL語句:

查看我們的慢查詢日誌文件中是否已經有記錄:

點擊查看裏面的內容信息:

查看當前的系統中有多少條慢查詢記錄:(該語句可以當做是系統是否有問題的一個檢查標準)

 

6.MySQL數據庫日誌查詢分析工具:mysqldumpslow(略)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章