知乎專欄 | 多維度架構 |
開啟記錄日誌,修改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 參數
-s,是order的順序,說明寫的不夠詳細,俺用下來,包括看了代碼,主要有c,t,l,r和ac,at,al,ar,t=time, l=lock time, r=rows分別是按照query次數,時間,lock的時間和返回的記錄數來排序,前面加了a的時倒敘
-t,是top n的意思,即為返回前面多少條的數據
-g,後邊可以寫一個正則匹配模式,大小寫不敏感的
-g,後邊可以寫一個正則匹配模式,大小寫不敏感的
mysqldumpslow -s c -t 20 ubuntu-slow.log
mysqldumpslow -s r -t 20 ubuntu-slow.log