MySQL慢查詢參數

開啓mysql慢查詢日誌mysql

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

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

參數詳解:spa

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。

配置結束以後,須要重啓纔會生效。rest

service mysqld restart

登錄數據庫查詢下環境日誌

show variables like '%query%';

執行一個慢查詢語句code

select sleep(3);

查看文件,看日誌是否生成。blog

 

相關文章
相關標籤/搜索