什么是慢查詢?如何通過慢查詢日志優化?


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

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語句查詢稱為慢查詢,都記在慢查詢日志里,我們開啟后可以查看究竟是哪些語句在慢查詢

 

開啟慢查詢日志

查看慢查詢配置,沒有則在my.cnf中添加

mysql> show variables like '%slow%'; 

+---------------------+---------------------------------------------------------------------+

| Variable_name       | Value                                                               |

+---------------------+---------------------------------------------------------------------+

| log_slow_queries    | OFF                                                                 |

| slow_launch_time    | 2                                                                   |

| slow_query_log      | OFF                                                                 |

| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\SZVY2AWX5511361-slow.log |

+---------------------+---------------------------------------------------------------------+

4 rows in set

 

分析日志 – 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語句


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM