如何顯示mysql所有執行緒 檢視mysql執行緒

2021-10-17 16:42:16 字數 1125 閱讀 7493

processlist命令的輸出結果顯示了有哪些執行緒在執行,可以幫助識別出有問題的查詢語句,兩種方式使用這個命令。

1.       進入mysql/bin目錄下輸入mysqladmin processlist;

2.       啟動mysql,輸入show processlist(關閉某一線程 kill id;);

如果有 super 許可權,則可以看到全部的執行緒,否則,只能看到自己發起的執行緒(這是指,當前對應的mysql帳戶執行的執行緒)。

得到資料形式如下(只擷取了三條):

mysql> show processlist;

| id | user | host            | db | command | time| state    | info

|207|root |192.168.0.20:51718 |mytest | sleep   | 5   |        | null

|208|root |192.168.0.20:51719 |mytest | sleep    | 5    |        | null

|220|root |192.168.0.20:51731 |mytest |query    | 84   | locked |

select bookname,culture,value,type from book where id=001

先簡單說一下各列的含義和用途,第一列,id,不用說了吧,乙個標識,你要kill乙個語句的時候很有用。user列,顯示單前使用者,如果不是root,這個命令就只顯示你許可權範圍內的sql語句。host列,顯示這個語句是從哪個ip的哪個埠上發出的。呵呵,可以用來追蹤出問題語句的使用者。db列,顯示這個程序目前連線的是哪個資料庫。command列,顯示當前連線的執行的命令,一般就是休眠(sleep),查詢(query),連線(connect)。time列,此這個狀態持續的時間,單位是秒。state列,顯示使用當前連線的sql語句的狀態,很重要的列,後續會有所有的狀態的描述,請注意,state只是語句執行中的某乙個狀態,乙個sql語句,已查詢為例,可能需要經過copying to tmp table,sorting result,sending data等狀態才可以完成,info列,顯示這個sql語句,因為長度有限,所以長的sql語句就顯示不全,但是乙個判斷問題語句的重要依據。

列舉程序所有執行緒

include stdafx.h include include include tlhelp32.h 有些位址過低的列舉不到,就給出了位址對照,容錯也沒做怎麼好 typedef enum threadinfoclass threadinfoclass typedef handle stdcall ...

執行緒同步 等待所有執行緒執行完畢

在多執行緒程式中經常會碰到執行緒同步 場景1主線程啟動多個子執行緒後,主線程需要等待所有的子執行緒執行完畢後,主線程才能進一步向下執行。c 提供了 manualresetevent 類為我們的執行緒同步提供了方便.manualresetevent.waitall new waithandle wai...

Python等待所有執行緒任務完成

import threading import time import random def takesleep id,name print name id 執行緒開始執行.time.sleep random.randint 0,3 print name id 執行緒任務結束 print 主程式開始...