MySQL查询连接数
1.查看連接的客戶端的鏈接數
| 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; |
2.查看正在執行的進程
| select?*?from?information_schema.processlist?where?Command !=?'Sleep'?order?by?Time?desc; |
3.查看進程和相關的信息
| show?full?processlist |
3的執行結果
?
針對3的字段解釋:
| 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 |
?
總結
以上是生活随笔為你收集整理的MySQL查询连接数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java实现提现到微信的功能
- 下一篇: linux cmake编译源码,linu