結合作業系統執行緒 檢視mysql中的sql資源 消耗

T1YSL發表於2021-05-18

結合作業系統執行緒 檢視mysql中的sql資源 消耗  (5.7 才可以, 5.7時  performance_schema.threads表 才加入的 thread_os_id 系統執行緒欄位)

 --1、執行一個大sql

mysql> update test_limit_table set b=round(rand()*b,0);


--2、檢視cpu高的執行緒是 2142,top -H 的時候 此時PID不是程式ID 而是執行緒id(LWP id)

[root@hostmysql80 mysql]# top -H

......                                                    

2142 mysql     20   0 2195448  74992   2348 R 83.1 26.4   0:03.78 mysqld                                                                                                                         

--3、檢視 2142執行緒的 具體的sql

mysql> SELECT a.name,

              a.thread_id,

              a.thread_os_id,

              a.processlist_id,

              a.type,

              b.user,

              b.host,

              b.db,

              b.command,

              b.time,

              b.state,

              b.info

         FROM performance_schema.threads a

         LEFT JOIN information_schema.processlist b

           ON a.processlist_id = b.id

        where a.type = 'FOREGROUND'

          and a.thread_os_id =2142; 

 

   





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2772759/,如需轉載,請註明出處,否則將追究法律責任。

相關文章