MySQL慢查詢參數


開啟mysql慢查詢日志

修改/etc/mysql/my.cnf配置文件,添加:

[mysqld]
slow_query_log = on
slow_query_log_file = /var/lib/mysql/slow.log
long_query_time = 2

參數詳解:

slow_query_log = on #開啟慢查詢日志(或設置1)

slow_query_log_file = filename #指定日志文件保存路徑,不指定的話默認在數據庫文件目錄下,名為hostname-slow.log

long_query_time = 2 #表示慢查詢閾值,SQL執行時間超過該值,則會記錄到慢查詢日志中。SQL的執行耗時不包含鎖等待時間。
log_queries_not_using_indexes=on #記錄沒有使用索引的查詢語句。!可能導致日志文件激增,謹慎使用。配合log_throttle_queries_not_using_indexes 使用。 
log_throttle_queries_not_using_indexes #表示每分鍾允許記錄到slow log的且未使用索引的sql語句次數。配合long_queries_not_using_indexes開啟使用。
min_examined_row_limit = 1000 #對於查詢掃描行數小於此參數的SQL,將不會記錄到慢查詢日志中;

log_slow_admin_statements #管理語句執行時間大於閾值也將寫入到慢查詢日志中,管理語句包括alter table, check table等等;

log_slow_slave_statements #從庫應用binlog,如果binlog格式是statement,執行時間超過閾值時,將寫入從庫的慢查詢日志, 對於ROW格式binlog,不管執行時間有沒有超過閾值,都不會寫入到從庫的慢查詢日志。

其中min_examined_row_limit參數表示SQL執行過程中掃描的行數閾值,如果掃描的行數小於該參數設置的值,即使SQL執行耗時大於慢查詢閾值,也不會記錄到慢查詢日志中,該參數默認值為0。

配置結束之后,需要重啟才會生效。

service mysqld restart

登陸數據庫查詢下環境

show variables like '%query%';

執行一個慢查詢語句

select sleep(3);

查看文件,看日志是否生成。

 


免責聲明!

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



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