首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

如何查詢 MySQL 當前正在執行的 SQL 語句:show processlist 實戰

     編輯:MySQL 資料庫相關知識

快速診斷流程

  1. SHOW STATUS 觀察 Slow_queries 計數器,若持續增長說明有慢查詢。
  2. SHOW PROCESSLIST 列出所有線程,重點關注 Time(已執行秒數)、State、Info(SQL 文本)。
  3. 鎖定可疑 SQL → EXPLAIN 分析執行計劃 → 優化索引或改寫。

實戰輸出範例

mysql> SHOW PROCESSLIST;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host      | db   | Command | Time | State | Info             |
+----+------+-----------+------+---------+------+-------+------------------+
| 53 | root | localhost | NULL | Query   | 0    | NULL  | SHOW PROCESSLIST |
+----+------+-----------+------+---------+------+-------+------------------+

關鍵欄位說明:

  • Command:Query/Sleep/Binlog Dump 等。
  • Time:該狀態持續秒數,長時間非 Sleep 多為問題語句。
  • State:Sending data、Locked、Copying to tmp table 等。
  • Info:完整 SQL(超長會截斷,配合 SHOW FULL PROCESSLIST 顯示完整)。

進階:Information Schema 視圖

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
WHERE COMMAND != 'Sleep' AND TIME > 10
ORDER BY TIME DESC;

可直接用 SQL 過濾、排序、關聯其他元資料表,適合監控腳本集成。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved