mysql 常用的SQL
阿新 • • 發佈:2021-06-10
mysql常用的SQL
https://www.huaweicloud.com/articles/206e8f5e82331018f8cfde939455c319.html
# 按客戶端 IP 分組,看哪個客戶端的連結數最多 select client_ip,count(client_ip) as client_num from (select substring_index(host,':' ,1) as client_ip from information_schema.processlist) as connect_info group by client_ip order by client_num desc;# 檢視正在執行的執行緒,並按 Time 倒排序,看看有沒有執行時間特別長的執行緒 select * from information_schema.processlist where Command != 'Sleep' order by Time desc; # 找出所有執行時間超過 5 分鐘的執行緒,拼湊出 kill 語句,方便後面查殺 (此處 5分鐘 可根據自己的需要調整SQL標紅處) 可複製查詢結果到控制檯,直接執行,殺死堵塞程序 select concat('kill ', id, ';') from information_schema.processlist where Command != 'Sleep' and Time > 300 order by Time desc; # 查詢執行緒及相關資訊 show full processlist
- Id: 就是這個執行緒的唯一標識,當我們發現這個執行緒有問題的時候,可以通過 kill 命令,加上這個Id值將這個執行緒殺掉。前面我們說了show processlist 顯示的資訊時來自information_schema.processlist 表,所以這個Id就是這個表的主鍵。
- User: 就是指啟動這個執行緒的使用者。
- Host: 記錄了傳送請求的客戶端的 IP 和 埠號。通過這些資訊在排查問題的時候,我們可以定位到是哪個客戶端的哪個程序傳送的請求。
- DB: 當前執行的命令是在哪一個資料庫上。如果沒有指定資料庫,則該值為 NULL 。
- Command: 是指此刻該執行緒正在執行的命令。這個很複雜,下面單獨解釋
- Time: 表示該執行緒處於當前狀態的時間。
- State: 執行緒的狀態,和 Command 對應,下面單獨解釋。
- Info: 一般記錄的是執行緒執行的語句。預設只顯示前100個字元,也就是你看到的語句可能是截斷了的,要看全部資訊,需要使用 show full processlist。
下面我們單獨看一下 Command 的值:
- Binlog Dump: 主節點正在將二進位制日誌 ,同步到從節點
- Change User: 正在執行一個 change-user 的操作
- Close Stmt: 正在關閉一個Prepared Statement 物件
- Connect: 一個從節點連上了主節點
- Connect Out: 一個從節點正在連主節點
- Create DB: 正在執行一個create-database 的操作
- Daemon: 伺服器內部執行緒,而不是來自客戶端的連結
- Debug: 執行緒正在生成除錯資訊
- Delayed Insert: 該執行緒是一個延遲插入的處理程式
- Drop DB: 正在執行一個 drop-database 的操作
- Execute: 正在執行一個 Prepared Statement
- Fetch: 正在從Prepared Statement 中獲取執行結果
- Field List: 正在獲取表的列資訊
- Init DB: 該執行緒正在選取一個預設的資料庫
- Kill : 正在執行 kill 語句,殺死指定執行緒
- Long Data: 正在從Prepared Statement 中檢索 long data
- Ping: 正在處理 server-ping 的請求
- Prepare: 該執行緒正在準備一個 Prepared Statement
- ProcessList: 該執行緒正在生成伺服器執行緒相關資訊
- Query: 該執行緒正在執行一個語句
- Quit: 該執行緒正在退出
- Refresh:該執行緒正在刷表,日誌或快取;或者在重置狀態變數,或者在複製伺服器資訊
- Register Slave: 正在註冊從節點
- Reset Stmt: 正在重置 prepared statement
- Set Option: 正在設定或重置客戶端的 statement-execution 選項
- Shutdown: 正在關閉伺服器
- Sleep: 正在等待客戶端向它傳送執行語句
- Statistics: 該執行緒正在生成 server-status 資訊
- Table Dump: 正在傳送表的內容到從伺服器
- Time: Unused