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

MySQL SHOW PROCESSLIST 實戰:鎖等待與慢查詢排查指南

     編輯:MySQL 資料庫相關知識

兩種調用方式

# 方式 1:命令列
mysqladmin processlist

# 方式 2:MySQL 客戶端
SHOW PROCESSLIST;
-- 有 SUPER 權限看全量線程,否則僅看當前帳號

輸出欄位解讀

欄位含義排查價值
Id線程 IDKILL id 終止語句
User執行用戶非 root 僅見自身權限範圍
Host來源 IP:Port追蹤問題來源
db當前資料庫定位業務庫
Command命令類型Sleep/Query/Connect
Time狀態持續秒數長時間 = 疑似問題
StateSQL 執行狀態核心診斷欄位
InfoSQL 文本(截斷)定位具體語句

State 狀態全景圖(高頻/異常)

  • Locked:被其他查詢鎖住 → 檢查長事務/未提交
  • Copying to tmp table on disk:臨時表超內存落盤 → 調大 tmp_table_size
  • Creating tmp table:建臨時表 → 索引/查詢優化
  • Sending data:傳輸結果集 → 網絡/大結果集
  • Sorting for group/order:排序 → 索引優化/調大 sort_buffer_size
  • Opening tables / Waiting for tables:表鎖/結構變更 → FLUSH TABLES/DDL 衝突
  • System lock:外部系統鎖 → --skip-external-locking
  • Sleep:等待客戶端請求 → 連接池洩漏/長連接
  • Killed:收到 KILL 信號,等鎖釋放才真死

🔍 原則:同一 State 持續超過幾秒即需介入。完整狀態表見 官方文檔。

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