解讀MySQL的慢日志


完整的慢日志格式一般如下:

1 # Time: 130320  7:30:26
2 # User@Host: db_user[db_database] @ localhost []
3 # Query_time: 4.545309  Lock_time: 0.000069 Rows_sent: 219  Rows_examined: 254
4 SET timestamp=1363779026;
5 SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';

第1行,代表記錄慢日志的時間,格式是YYMMDD H:M:S.  注: 這是MySQL服務器的時間,可能和你的當地時間不同

第2行,很明顯不多解釋

第3行,是整個語句的query time, Lock time, 返回或者發送了多少行, 執行的行數

第4行,是語句真正發生的時間

第5行,具體語句

很多人都知道MySQL的slow log里面記錄了幾種:

long_query_time     :  設定慢查詢的閥值,超出次設定值的SQL即被記錄到慢查詢日志,缺省值為10s  
slow_query_log      :  指定是否開啟慢查詢日志  
log_slow_queries    :  指定是否開啟慢查詢日志(該參數要被slow_query_log取代,做兼容性保留)  
slow_query_log_file :  指定慢日志文件存放位置,可以為空,系統會給一個缺省的文件host_name-slow.log  
min_examined_row_limit:查詢語句的執行行數檢查返回少於該參數指定行的SQL不被記錄到慢查詢日志  
log_queries_not_using_indexes: 不使用索引的慢查詢日志是否記錄到索引

除了min_examined_row_limit參數外,其他幾個參數都比較常見的,這個是我第一次見到,記錄下來,這個參數可以用來排除在檢查慢查詢時,一些不必要的干擾

Command-Line Format --min-examined-row-limit=#
System Variable Name min_examined_row_limit
Variable Scope Global, Session
Dynamic Variable Yes
Permitted Values (32-bit platforms) Type integer
Default 0
Min Value 0
Max Value 4294967295
Permitted Values (64-bit platforms) Type integer
Default 0
Min Value 0
Max Value 18446744073709551615

這個參數是用來設置慢查詢的最小examined掃描行數。

參考資料:

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_min_examined_row_limit 

https://www.digitalocean.com/community/tutorials/how-to-use-mysql-query-profiling 

http://calladeveloper.blogspot.com/2013/03/howto-read-mysql-slow-query-log.html 


免責聲明!

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



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