1. 程式人生 > >「mysql優化專題」什麽是慢查詢?如何通過慢查詢日誌優化?(10)

「mysql優化專題」什麽是慢查詢?如何通過慢查詢日誌優化?(10)

logs stat bst 二進制日誌 help use dumps 根據 客戶

日誌就跟人們寫的日記一樣,記錄著過往的事情。但是人的日記是主觀的(記自己想記的內容),而數據庫的日誌是客觀的,根據記錄內容分為以下好幾種日誌(技術文):

a、錯誤日誌:記錄啟動、運行或停止mysqld時出現的問題。

b、通用日誌:記錄建立的客戶端連接和執行的語句。

c、更新日誌:記錄更改數據的語句。該日誌在MySQL 5.1中已不再使用。

d、二進制日誌:記錄所有更改數據的語句。還用於復制。

e、慢查詢日誌:記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。

f、Innodb日誌:innodb redo log

缺省情況下,所有日誌創建於mysqld數據目錄中。

可以通過刷新日誌,來強制mysqld來關閉和重新打開日誌文件(或者在某些情況下切換到一個新的日誌)。

當你執行一個FLUSH LOGS語句或執行mysqladmin flush-logs或mysqladmin refresh時,則日誌被老化。

對於存在MySQL復制的情形下,從復制服務器將維護更多日誌文件,被稱為接替日誌。

這次我們介紹的就是慢查詢日誌。何謂慢查詢日誌?MySQL會記錄下查詢超過指定時間的語句,我們將超過指定時間的SQL語句查詢稱為慢查詢,都記在慢查詢日誌裏,我們開啟後可以查看究竟是哪些語句在慢查詢

開啟慢查詢日誌(技術文)

mysql>show variables like “%slow%”; 查看慢查詢配置,沒有則在my.cnf中添加,如下

技術分享

分析日誌 – mysqldumpslow(技術文)

分析日誌,可用mysql提供的mysqldumpslow,使用很簡單,參數可–help查看

技術分享

推薦用分析日誌工具 – mysqlsla(技術文)

技術分享

【說明】(技術文)

queries total: 總查詢次數 unique:去重後的sql數量

sorted by : 輸出報表的內容排序

最重大的慢sql統計信息, 包括 平均執行時間, 等待鎖時間, 結果行的總數, 掃描的行總數.

Count, sql的執行次數及占總的slow log數量的百分比.

Time, 執行時間, 包括總時間, 平均時間, 最小, 最大時間, 時間占到總慢sql時間的百分比.

95% of Time, 去除最快和最慢的sql, 覆蓋率占95%的sql的執行時間.

Lock Time, 等待鎖的時間.

95% of Lock , 95%的慢sql等待鎖時間.

Rows sent, 結果行統計數量, 包括平均, 最小, 最大數量.

Rows examined, 掃描的行數量.

Database, 屬於哪個數據庫

Users, 哪個用戶,IP, 占到所有用戶執行的sql百分比

Query abstract, 抽象後的sql語句

Query sample, sql語句

「mysql優化專題」什麽是慢查詢?如何通過慢查詢日誌優化?(10)