您好,登錄后才能下訂單哦!
這篇文章主要介紹了MySQL線程狀態(tài)怎么看,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
簡(jiǎn)單翻譯下:
After create
當(dāng)線程在創(chuàng)建表的函數(shù)末尾創(chuàng)建表(包括內(nèi)部臨時(shí)表)時(shí),會(huì)發(fā)生這種情況。即使由于某些錯(cuò)誤而無(wú)法創(chuàng)建表,也會(huì)使用此狀態(tài)。
Analyzing
線程正在計(jì)算MyISAM
表鍵分布(例如,for
ANALYZE TABLE
)。
checking permissions
線程正在檢查服務(wù)器是否具有執(zhí)行語(yǔ)句所需的權(quán)限。
Checking table
該線程正在執(zhí)行表檢查操作。
cleaning up
該線程已經(jīng)處理了一個(gè)命令,并準(zhǔn)備釋放內(nèi)存并重置某些狀態(tài)變量。
closing tables
該線程正在將更改的表數(shù)據(jù)刷新到磁盤(pán)并關(guān)閉已使用的表。這應(yīng)該是一個(gè)快速的操作。如果沒(méi)有,請(qǐng)驗(yàn)證您的磁盤(pán)空間剩余。
converting HEAP to ondisk
該線程正在將內(nèi)部臨時(shí)表從
MEMORY
表轉(zhuǎn)換為磁盤(pán)表。
copy to tmp table
線程正在處理一個(gè)ALTER TABLE
語(yǔ)句。在創(chuàng)建具有新結(jié)構(gòu)的表但在將行復(fù)制到其中之前,將發(fā)生此狀態(tài)。
對(duì)于處于此狀態(tài)的線程,可以使用性能模式來(lái)獲取有關(guān)復(fù)制操作的進(jìn)度。
Copying to group table
如果語(yǔ)句具有不同的條件ORDER BY
和
GROUP BY
標(biāo)準(zhǔn),則按組對(duì)行進(jìn)行排序并將其復(fù)制到臨時(shí)表。
Copying to tmp table
服務(wù)器正在復(fù)制到內(nèi)存中的臨時(shí)表。
altering table
服務(wù)器正在執(zhí)行就地
ALTER TABLE
。
Copying to tmp table on disk
服務(wù)器正在復(fù)制到磁盤(pán)上的臨時(shí)表。
Creating index
線程正在處理ALTER TABLE ... ENABLE KEYS
一個(gè)MyISAM
表。
Creating sort index
線程正在處理SELECT
使用內(nèi)部臨時(shí)表解析的線程 。
creating table
線程正在創(chuàng)建一個(gè)表。這包括創(chuàng)建臨時(shí)表。
Creating tmp table
該線程正在內(nèi)存或磁盤(pán)上創(chuàng)建臨時(shí)表。如果表在內(nèi)存中創(chuàng)建但稍后轉(zhuǎn)換為磁盤(pán)表,則該操作期間的狀態(tài)將為Copying to tmp table on disk
。
committing alter table to storage engine
服務(wù)器已完成就地
ALTER TABLE
并提交結(jié)果。
deleting from main table
服務(wù)器正在執(zhí)行多表刪除的第一部分。它僅從第一個(gè)表中刪除,并保存用于從其他(引用)表中刪除的列和偏移量。
deleting from reference tables
服務(wù)器正在執(zhí)行多表刪除的第二部分,并從其他表中刪除匹配的行。
discard_or_import_tablespace
線程正在處理ALTER TABLE ... DISCARD TABLESPACE
或ALTER TABLE ... IMPORT TABLESPACE
聲明。
end
這發(fā)生在結(jié)束,但的清理之前
ALTER TABLE
,
CREATE VIEW
,
DELETE
,
INSERT
,
SELECT
,或
UPDATE
語(yǔ)句。
executing
該線程已開(kāi)始執(zhí)行語(yǔ)句。
Execution of init_command
線程正在執(zhí)行init_command
系統(tǒng)變量值中的語(yǔ)句 。
freeing items
線程執(zhí)行了一個(gè)命令。在此狀態(tài)期間完成的一些項(xiàng)目的釋放涉及查詢緩存。這種狀態(tài)通常緊隨其后cleaning up
。
FULLTEXT initialization
服務(wù)器正準(zhǔn)備執(zhí)行自然語(yǔ)言全文搜索。
init
出現(xiàn)這種情況的初始化之前
ALTER TABLE
,
DELETE
,
INSERT
,
SELECT
,或
UPDATE
語(yǔ)句。服務(wù)器在此狀態(tài)下采取的操作包括刷新二進(jìn)制日志,InnoDB
日志和一些查詢緩存清理操作。
對(duì)于end
狀態(tài),可能會(huì)發(fā)生以下操作:
刪除表中的數(shù)據(jù)后刪除查詢緩存條目
將事件寫(xiě)入二進(jìn)制日志
釋放內(nèi)存緩沖區(qū),包括blob
Killed
有人KILL
向線程發(fā)送了一個(gè)語(yǔ)句,它應(yīng)該在下次檢查kill標(biāo)志時(shí)中止。在MySQL的每個(gè)主循環(huán)中檢查該標(biāo)志,但在某些情況下,線程可能仍然需要很短的時(shí)間才能死掉。如果線程被某個(gè)其他線程鎖定,則一旦另一個(gè)線程釋放其鎖定,kill就會(huì)生效。
logging slow query
該線程正在向慢查詢?nèi)罩緦?xiě)一條語(yǔ)句。
login
連接線程的初始狀態(tài),直到客戶端成功通過(guò)身份驗(yàn)證。
manage keys
服務(wù)器正在啟用或禁用表索引。
NULL
該狀態(tài)用于該SHOW PROCESSLIST
狀態(tài)。
Opening tables
線程正在嘗試打開(kāi)一個(gè)表。這應(yīng)該是非??斓某绦颍怯惺裁礀|西阻止打開(kāi)。例如,一個(gè)ALTER TABLE
或一個(gè)
LOCK TABLE
語(yǔ)句可以阻止在語(yǔ)句結(jié)束之前打開(kāi)表。
optimizing
服務(wù)器正在對(duì)查詢執(zhí)行初始優(yōu)化。
preparing
在查詢優(yōu)化期間發(fā)生此狀態(tài)。
Purging old relay logs
該線程正在刪除不需要的中繼日志文件。
query end
處理查詢后但在freeing items
狀態(tài)之前發(fā)生此 狀態(tài)。
Receiving from client
服務(wù)器正在從客戶端讀取數(shù)據(jù)包。Reading from net
在MySQL 5.7.8之前調(diào)用此狀態(tài)。
Removing duplicates
該查詢使用
SELECT DISTINCT
的方式是MySQL無(wú)法在早期階段優(yōu)化掉不同的操作。因此,在將結(jié)果發(fā)送到客戶端之前,MySQL需要額外的階段來(lái)刪除所有重復(fù)的行。
removing tmp table
該線程在處理SELECT
語(yǔ)句后刪除內(nèi)部臨時(shí)表。如果未創(chuàng)建臨時(shí)表,則不使用此狀態(tài)。
rename
該線程正在重命名一個(gè)表。
rename result table
線程正在處理一個(gè)ALTER TABLE
語(yǔ)句,創(chuàng)建了新表,并重命名它以替換原始表。
Reopen tables
該線程獲得了表的鎖定,但在獲取鎖定之后注意到基礎(chǔ)表結(jié)構(gòu)發(fā)生了變化。它釋放了鎖,關(guān)閉了桌子,并試圖重新打開(kāi)它。
Repair by sorting
修復(fù)代碼使用排序來(lái)創(chuàng)建索引。
preparing for alter table
服務(wù)器正準(zhǔn)備執(zhí)行就地
ALTER TABLE
。
Repair done
該線程已完成對(duì)MyISAM
表的多線程修復(fù) 。
Repair with keycache
修復(fù)代碼通過(guò)密鑰緩存逐個(gè)創(chuàng)建密鑰。這比慢得多Repair by sorting
。
Rolling back
該線程正在回滾一個(gè)事務(wù)。
Saving state
對(duì)于MyISAM
諸如修復(fù)或分析的表操作,線程將新表狀態(tài)保存到.MYI
文件頭。狀態(tài)包括諸如行數(shù),
AUTO_INCREMENT
計(jì)數(shù)器和密鑰分發(fā)之類的信息。
Searching rows for update
該線程正在進(jìn)行第一階段以在更新之前查找所有匹配的行。如果
UPDATE
要更改用于查找所涉及行的索引,則必須執(zhí)行此操作。
Sending data
線程正在讀取和處理SELECT
語(yǔ)句的行 ,并將數(shù)據(jù)發(fā)送到客戶端。由于在此狀態(tài)期間發(fā)生的操作往往會(huì)執(zhí)行大量磁盤(pán)訪問(wèn)(讀?。?,因此它通常是給定查詢生命周期中運(yùn)行時(shí)間最長(zhǎng)的狀態(tài)。
Sending to client
服務(wù)器正在向客戶端寫(xiě)入數(shù)據(jù)包。Writing to net
在MySQL 5.7.8之前調(diào)用此狀態(tài)。
setup
線程正在開(kāi)始一個(gè)ALTER TABLE
操作。
Sorting for group
線程正在進(jìn)行排序以滿足
GROUP BY
。
Sorting for order
線程正在進(jìn)行排序以滿足ORDER BY
。
Sorting index
該線程正在對(duì)索引頁(yè)面進(jìn)行排序,以便在MyISAM
表優(yōu)化操作期間進(jìn)行更有效的訪
Sorting result
對(duì)于SELECT
聲明,這類似于Creating sort index
非臨時(shí)表。
statistics
服務(wù)器正在計(jì)算統(tǒng)計(jì)信息以開(kāi)發(fā)查詢執(zhí)行計(jì)劃。如果線程長(zhǎng)時(shí)間處于此狀態(tài),則服務(wù)器可能是磁盤(pán)綁定執(zhí)行其他工作。
System lock
線程已經(jīng)調(diào)用
mysql_lock_tables()
,并且線程狀態(tài)尚未更新。這是一個(gè)非常普遍的狀態(tài),可能由于多種原因而發(fā)生。
例如,線程將請(qǐng)求或正在等待表的內(nèi)部或外部系統(tǒng)鎖定。InnoDB
在執(zhí)行期間等待表級(jí)鎖定時(shí)會(huì) 發(fā)生這種情況LOCK TABLES
。如果此狀態(tài)是由外部鎖的請(qǐng)求引起的,并且您沒(méi)有使用多個(gè)訪問(wèn)相同 表的mysqld服務(wù)器,則MyISAM
可以使用該--skip-external-locking
選項(xiàng)禁用外部系統(tǒng)鎖 。但是,默認(rèn)情況下禁用外部鎖定,因此該選項(xiàng)很可能無(wú)效。對(duì)于
SHOW PROFILE
,這個(gè)狀態(tài)意味著線程正在請(qǐng)求鎖定(不等待它)。
update
線程正準(zhǔn)備開(kāi)始更新表。
Updating
線程正在搜索要更新的行并正在更新它們。
updating main table
服務(wù)器正在執(zhí)行多表更新的第一部分。它僅更新第一個(gè)表,并保存用于更新其他(引用)表的列和偏移量。
updating reference tables
服務(wù)器正在執(zhí)行多表更新的第二部分,并更新其他表中的匹配行。
User lock
該線程將要求或正在等待通過(guò)GET_LOCK()
呼叫請(qǐng)求的咨詢鎖 。對(duì)于
SHOW PROFILE
,此狀態(tài)表示線程正在請(qǐng)求鎖定(不等待它)。
User sleep
線程已經(jīng)調(diào)用了一個(gè)
SLEEP()
調(diào)用。
Waiting for commit lock
FLUSH TABLES WITH READ LOCK
正在等待提交鎖定。
Waiting for global read lock
FLUSH TABLES WITH READ LOCK
正在等待全局讀鎖定或read_only
正在設(shè)置全局 系統(tǒng)變量。
Waiting for tables
線程得到一個(gè)通知,表明表的底層結(jié)構(gòu)已經(jīng)改變,它需要重新打開(kāi)表以獲得新結(jié)構(gòu)。但是,要重新打開(kāi)表,它必須等到所有其他線程關(guān)閉了相關(guān)表。
Waiting for table flush
線程正在執(zhí)行FLUSH TABLES
并且正在等待所有線程關(guān)閉它們的表,或者線程得到一個(gè)表的基礎(chǔ)結(jié)構(gòu)已經(jīng)更改的通知,并且它需要重新打開(kāi)表以獲取新結(jié)構(gòu)。但是,要重新打開(kāi)表,它必須等到所有其他線程關(guān)閉了相關(guān)表。
Waiting for *lock_type* lock
服務(wù)器正在等待THR_LOCK
從元數(shù)據(jù)鎖定子系統(tǒng)獲取 鎖定或鎖定,其中
lock_type指示鎖定的類型。
此狀態(tài)表示等待
THR_LOCK
:
這些狀態(tài)表示等待元數(shù)據(jù)鎖定:
Waiting for event metadata lock
Waiting for global read lock
Waiting for schema metadata lock
Waiting for stored function metadata lock
Waiting for stored procedure metadata lock
Waiting for table metadata lock
Waiting for trigger metadata lock
Waiting for table level lock
Waiting on cond
線程正在等待條件變?yōu)檎娴耐ㄓ脿顟B(tài)。沒(méi)有具體的州信息。
Writing to net
服務(wù)器正在將數(shù)據(jù)包寫(xiě)入網(wǎng)絡(luò)。Sending to client
從MySQL 5.7.8開(kāi)始調(diào)用此狀態(tài)。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“MySQL線程狀態(tài)怎么看”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。