日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql show full_mysql: show full processlist 详解

發(fā)布時間:2024/10/8 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql show full_mysql: show full processlist 详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

show full processlist 是顯示用戶正在運行的線程,需要注意的是,除了 root 用戶能看到所有正在運行的線程外,其他用戶都只能看到自己正在運行的線程,看不到其它用戶正在運行的線程。除非單獨個這個用戶賦予了PROCESS 權(quán)限。

show processlist 顯示的信息都是來自MySQL系統(tǒng)庫 information_schema 中的 processlist 表。所以使用下面的查詢語句可以獲得相同的結(jié)果:

select * from information_schema.processlist

了解這些基本信息后,下面我們看看查詢出來的結(jié)果都是什么意思。

Id: 就是這個線程的唯一標(biāo)識,當(dāng)我們發(fā)現(xiàn)這個線程有問題的時候,可以通過 kill 命令,加上這個Id值將這個線程殺掉。前面我們說了show processlist 顯示的信息時來自information_schema.processlist 表,所以這個Id就是這個表的主鍵。

User: 就是指啟動這個線程的用戶。

Host: 記錄了發(fā)送請求的客戶端的 IP 和 端口號。通過這些信息在排查問題的時候,我們可以定位到是哪個客戶端的哪個進(jìn)程發(fā)送的請求。

DB: 當(dāng)前執(zhí)行的命令是在哪一個數(shù)據(jù)庫上。如果沒有指定數(shù)據(jù)庫,則該值為 NULL 。

Command: 是指此刻該線程正在執(zhí)行的命令。這個很復(fù)雜,下面單獨解釋

Time: 表示該線程處于當(dāng)前狀態(tài)的時間。

State: 線程的狀態(tài),和 Command 對應(yīng),下面單獨解釋。

Info: 一般記錄的是線程執(zhí)行的語句。默認(rèn)只顯示前100個字符,也就是你看到的語句可能是截斷了的,要看全部信息,需要使用 show full processlist。

下面我們單獨看一下 Command 的值:

Binlog Dump: 主節(jié)點正在將二進(jìn)制日志 ,同步到從節(jié)點

Change User: 正在執(zhí)行一個 change-user 的操作

Close Stmt: 正在關(guān)閉一個Prepared Statement 對象

Connect: 一個從節(jié)點連上了主節(jié)點

Connect Out: 一個從節(jié)點正在連主節(jié)點

Create DB: 正在執(zhí)行一個create-database 的操作

Daemon: 服務(wù)器內(nèi)部線程,而不是來自客戶端的鏈接

Debug: 線程正在生成調(diào)試信息

Delayed Insert: 該線程是一個延遲插入的處理程序

Drop DB: 正在執(zhí)行一個 drop-database 的操作

Execute: 正在執(zhí)行一個 Prepared Statement

Fetch: 正在從Prepared Statement 中獲取執(zhí)行結(jié)果

Field List: 正在獲取表的列信息

Init DB: 該線程正在選取一個默認(rèn)的數(shù)據(jù)庫

Kill : 正在執(zhí)行 kill 語句,殺死指定線程

Long Data: 正在從Prepared Statement 中檢索 long data

Ping: 正在處理 server-ping 的請求

Prepare: 該線程正在準(zhǔn)備一個 Prepared Statement

ProcessList: 該線程正在生成服務(wù)器線程相關(guān)信息

Query: 該線程正在執(zhí)行一個語句

Quit: 該線程正在退出

Refresh:該線程正在刷表,日志或緩存;或者在重置狀態(tài)變量,或者在復(fù)制服務(wù)器信息

Register Slave: 正在注冊從節(jié)點

Reset Stmt: 正在重置 prepared statement

Set Option: 正在設(shè)置或重置客戶端的 statement-execution 選項

Shutdown: 正在關(guān)閉服務(wù)器

Sleep: 正在等待客戶端向它發(fā)送執(zhí)行語句

Statistics: 該線程正在生成 server-status 信息

Table Dump: 正在發(fā)送表的內(nèi)容到從服務(wù)器

Time: Unused

如果有歧義可以查看官方文檔:

下面我們看看 State 的值有哪些:

下面是常用到的SQL,記錄下來便于使用。

按客戶端 IP 分組,看哪個客戶端的鏈接數(shù)最多

select client_ip,count(client_ip) as client_num from (select substring_index(host,':' ,1) as client_ip from processlist ) as connect_info group by client_ip order by client_num desc;

查看正在執(zhí)行的線程,并按 Time 倒排序,看看有沒有執(zhí)行時間特別長的線程:

select * from information_schema.processlist where Command != 'Sleep' order by Time desc;

找出所有執(zhí)行時間超過 5 分鐘的線程,拼湊出 kill 語句,方便后面查殺:

select concat('kill', id, ';') from information_schema.processlist where Command != 'Sleep' and Time > 300 order by Time desc;

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的mysql show full_mysql: show full processlist 详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。