2012-06-28 20 views
4

以下是'SHOW ENGINE INNODB STATUS'的幾行迴應。在SHOW引擎INNODB狀態中事務未啓動是什麼意思?


TRANSACTIONS 
------------ 
Trx id counter 58EC54C6 
Purge done for trx's n:o < 58EC54C3 undo n:o < 0 
History list length 2420 
LIST OF TRANSACTIONS FOR EACH SESSION: 
---TRANSACTION 58EC51E6, not started 
MySQL thread id 520131, OS thread handle 0x7f0db930e700, query id 24011015 108.89.56.87 xyz 
---TRANSACTION 58EC527E, not started 
MySQL thread id 520061, OS thread handle 0x7f0dbb596700, query id 24011370 108.89.56.87 xyz 
---TRANSACTION 58EC53AC, not started 
MySQL thread id 520065, OS thread handle 0x7f0dbb28a700, query id 24012094 108.89.56.87 xyz 
---TRANSACTION 58EC50CE, not started 
MySQL thread id 520109, OS thread handle 0x7f0dbba69700, query id 24010431 108.89.56.87 xyz ---TRANSACTION 58EC51E8, not started 
MySQL thread id 520123, OS thread handle 0x7f0dbb4d3700, query id 24011016 108.89.56.87 xyz ---TRANSACTION 58EC51D0, not started 
MySQL thread id 520072, OS thread handle 0x7f0db865c700, query id 24010944 108.89.56.87 xyz 
---TRANSACTION 58EC5184, not started 
MySQL thread id 520058, OS thread handle 0x7f0db8c74700, query id 24010807 108.89.56.87 xyz 

我想知道這是什麼 '交易TRANSID,沒有開始' 的意思?任何查詢執行失敗嗎?

我正在使用innodb。我也不是手動啓動交易。它正在考慮自動事務,因爲我正在發佈具有批量數據的表上的更新查詢。並且你會在5-10分鐘內在這個單獨的表上獲取mysql更新查詢的內容。

請讓我知道'交易未開始'是什麼意思?它顯示失敗的查詢還是隻是一個正常的日誌?

在此先感謝!

回答

8

線程(〜連接)在事務期間首次需要鎖定某些數據時,會創建一個事務「對象」(〜context)。事務「對象」在事務結束時不會被銷燬,如果新事務由同一個線程啓動,它將被重用。

表示作爲not started每個交易是「對象」由一個線程這是不目前事務內部(更精確地說,其不需要維護事務的單獨的上下文)擁有。

thread id是當您發出SHOW PROCESSLIST時在Id列中顯示的那個。

這是沒什麼好擔心的,其實這是正常的行爲。

2

,我發現這個在互聯網上:

什麼時候開始Innodb的交易?

2011年1月11日由彼得·扎伊採夫

9評論inShare1

什麼時候開始Innodb的交易?答案看起來很明顯 - 當你發出「BEGIN」命令時。然而,這是 引擎點的錯誤答案。運行「SHOW INNODB STATUS」,你會在交易清單中看到「不是 開始」狀態。

here

對於每個連接的MySQL會有如果存在用於此連接, 或者如果事務是活動ACTIVE無活性Innodb的交易被醚未啓動狀態。即使連接處於「睡眠」階段,註釋事務也可以是活動的 - 如果它是多個語句 事務。 Innodb還會打印OS thread_id和進程ID,如果您想使用gdb連接到正在運行的 mysqld以進行故障排除和類似事情,那麼 可能會有所幫助。也 交易狀態報告,這基本上是什麼交易是 這樣做,它可以「提取行」,「更新」和其他 值的夫婦。

the source

相關問題