mysql>show processlist;
或
mysql> show status;
或
$ mysqladmin proc -u user -p
$ mysqladmin status -u user -p
Uptime: 123612 Threads: 3 Questions: 197247 Slow queries: 0 Opens: 130 Flush tables: 1 Open tables: 124 Queries per second avg: 1.595
參數的意義
Uptime 伺服器運作的秒數
Threads 連線中的客戶數
Questions 從伺服器啟動到目前為使客戶送出的查詢 query數
Slow queries 被標注為慢速的查詢數,只要查詢秒數超過long_query_time的設定就是慢速查詢。
Opens 伺服器有開啟的表數
Flush tables 伺服器有執行過flush-*, refresh, and reload的次數
Open tables 伺服器目前有開啟的表數
Memory in use mysql記憶體用量,只有mysql編譯時有加參數 --with-debug=full. 才會顯示
Maximum memory used mysql直接使用記憶體的最大量,只有mysql編譯時有加參數 --with-debug=full. 才會顯示
Queries per second avg 平均每秒查詢數
查看超過幾秒算 slow queries,預設是10秒
mysql> show VARIABLES like 'long_query_time';
設定記錄[1]
# vi /etc/my.cnf
[mysqld]
# 開啟slow_query
slow_query_log=1
long_query_time = 5
slow_query_log_file=slow_queries.log
重啟mysql生效
上面的log file 會放在mysql的資料庫路徑中,Centos 在 /var/lib/mysql
重跑 mysql 之後,若再遇到流量飆高,就下指令看看什麼 SQL 在耗流量吧[1]
$ mysqldumpslow -s r -t 10 /var/lib/mysql/slow_queries.log
參考資料
[1] http://ithelp.ithome.com.tw/questions/10097377
[2] 詳解MySQL四種Log機制 以日誌稽核解析追蹤事件
原文 2011-02-19 14:37:49