mysql操作命令梳理(5)-執行sql語句查詢即mysql狀態說明

散盡浮華發表於2017-01-11

 

在日常mysql運維中,經常要查詢當前mysql下正在執行的sql語句及其他在跑的mysql相關執行緒,這就用到mysql processlist這個命令了。
mysql> show processlist;            //查詢正在執行的sql語句
mysql> show full processlist;       //查詢正在執行的完整sql語句
mysql> kill connection id           //停掉processlist查詢出的某個執行緒,id是對應的id號
mysql> show processlist;

+------+-------+---------------------+--------+-------------+------+-----------------------------------------------------------------------+------------------+
| Id   | User  | Host                | db     | Command     | Time | State                                                                 | Info             |
+------+-------+---------------------+--------+-------------+------+-----------------------------------------------------------------------+------------------+
| 1574 | root  | localhost           | huanpc | Sleep       |  702 |                                                                       | NULL             |
| 1955 | root  | localhost           | NULL   | Query       |    0 | init                                                                  | show processlist |
| 1958 | slave | 192.168.1.102:37399 | NULL   | Binlog Dump |   10 | Master has sent all binlog to slave; waiting for binlog to be updated | NULL             |
+------+-------+---------------------+--------+-------------+------+-----------------------------------------------------------------------+------------------+
3 rows in set (0.00 sec)

mysql> kill connection 1574;
Query OK, 0 rows affected (0.00 sec)

mysql> show processlist;
+------+-------+---------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+
| Id   | User  | Host                | db   | Command     | Time | State                                                                 | Info             |
+------+-------+---------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+
| 1955 | root  | localhost           | NULL | Query       |    0 | init                                                                  | show processlist |
| 1958 | slave | 192.168.1.102:37399 | NULL | Binlog Dump |   18 | Master has sent all binlog to slave; waiting for binlog to be updated | NULL             |
+------+-------+---------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+
2 rows in set (0.00 sec)


除此之外,show processlist還能檢視當前mysql連線數。
如果是root帳號,能看到所有使用者的當前連線。
如果是其它普通帳號,只能看到自己佔用的連線。
注意:
show processlist;只列出前100條
如果想全列出要使用show full processlist;

 

使用show status;可以比較全面地檢視到mysql狀態
mysql> show status;

引數解釋:
Aborted_clients              由於客戶沒有正確關閉連線已經死掉,已經放棄的連線數量。
Aborted_connects          嘗試已經失敗的MySQL伺服器的連線的次數。
Connections                   試圖連線MySQL伺服器的次數。
Created_tmp_tables       當執行語句時,已經被創造了的隱含臨時表的數量。
Delayed_insert_threads  正在使用的延遲插入處理器執行緒的數量。
Delayed_writes               用INSERT DELAYED寫入的行數。
Delayed_errors               用INSERT DELAYED寫入的發生某些錯誤(可能重複鍵值)的行數。
Flush_commands            執行FLUSH命令的次數。
Handler_delete                請求從一張表中刪除行的次數。
Handler_read_first           請求讀入表中第一行的次數。
Handler_read_key            請求數字基於鍵讀行。
Handler_read_next           請求讀入基於一個鍵的一行的次數。
Handler_read_rnd             請求讀入基於一個固定位置的一行的次數。
Handler_update                請求更新表中一行的次數。
Handler_write                   請求向表中插入一行的次數。
Key_blocks_used              用於關鍵字快取的塊的數量。
Key_read_requests           請求從快取讀入一個鍵值的次數。
Key_reads                        從磁碟物理讀入一個鍵值的次數。
Key_write_requests          請求將一個關鍵字塊寫入快取次數。
Key_writes                        將一個鍵值塊物理寫入磁碟的次數。
Max_used_connections      同時使用的連線的最大數目。
Not_flushed_key_blocks     在鍵快取中已經改變但是還沒被清空到磁碟上的鍵塊。
Not_flushed_delayed_rows 在INSERT DELAY佇列中等待寫入的行的數量。
Open_tables                       開啟表的數量。
Open_files                          開啟檔案的數量。
Open_streams                    開啟流的數量(主要用於日誌記載)
Opened_tables                    已經開啟的表的數量。
Questions                           發往伺服器的查詢的數量。
Slow_queries                       要花超過long_query_time時間的查詢數量。
Threads_connected              當前開啟的連線的數量。
Threads_running                  不在睡眠的執行緒數量。
Uptime                                伺服器工作了多少秒。

相關文章