Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構

2.7. mysqldumpslow - Parse and summarize the MySQL slow query log.

開啟記錄日誌,修改my.cnf加入下面幾行

--log-slow-queries[=file_name]

		
long_query_time = 10
log-slow-queries =
		
		

long_query_time 是指執行超過10秒的sql會被記錄下來。

log-slow-queries設置把日誌檔案的位置,如果沒有給出檔案名值, 預設未主機名,尾碼為-slow.log。如果給出了檔案名,但不是絶對路徑名,檔案則寫入數據目錄。

cat /etc/mysql/my.cnf

[mysqld]
set-variable=long_query_time=1
log-slow-queries=/var/log/mysql/log-slow-queries.log


You must create the file manually and change owners this way:

touch /var/log/mysql/log-slow-queries.log
chown mysql.mysql -R /var/log/mysql/log-slow-queries.log
		
$ mysqldumpslow /var/log/mysql/log-slow-queries.log
		

mysqldumpslow 參數

  1. -s,是order的順序,說明寫的不夠詳細,俺用下來,包括看了代碼,主要有c,t,l,r和ac,at,al,ar,t=time, l=lock time, r=rows分別是按照query次數,時間,lock的時間和返回的記錄數來排序,前面加了a的時倒敘

  2. -t,是top n的意思,即為返回前面多少條的數據

  3. -g,後邊可以寫一個正則匹配模式,大小寫不敏感的

  4. -g,後邊可以寫一個正則匹配模式,大小寫不敏感的

		
mysqldumpslow -s c -t 20 ubuntu-slow.log
		
		

		
mysqldumpslow -s r -t 20 ubuntu-slow.log