2016-12-29 62 views
-1

我們知道在SQL Server中,事務日誌文件包含重做和撤消日誌,但是在MYSQL的事務日誌,它僅包含撤銷日誌,所以MYSQL怎麼辦重做操作,如果它只是寫只是局部的交易成功交易的數據,然後服務器下降?因爲重新引導服務器時需要執行重做操作。MYSQL如何做重做操作?

Eidt,對不起,我錯字,我的意思是爲什麼MySQL沒有重做日誌,而不是撤銷日誌。

+0

交易無論是成功完成,或者如果交易一個查詢失敗失敗。這意味着交易**不能是部分**。如果它是部分的,那不是交易。確定了這一點後,這意味着交易沒有問題。你有其他問題,所以我建議你詳細寫下它是什麼。 – Mjh

+0

@ Mjh,我的意思是部分寫交易數據,而不是交易,假設交易非常大。 –

回答

0

這不是MySQL的水平上進行,這被認爲是支持交易(例如InnoDB的)各種表類型的護理。

Innodb的是在MySQL中使用最廣泛的事務表型,我的答案只專注於該表型。對於其他事務表類型,請參閱他們自己的有關重做日誌的更多信息的文檔。

innodb redo logs MySQL文檔描述如何存儲InnoDB的重做日誌:

默認情況下,重做日誌物理磁盤上爲一組 文件,命名爲ib_logfile0和ib_logfile1表示。 MySQL以循環方式寫入重做日誌文件 。重做日誌中的數據以受影響記錄的條目 進行編碼;這些數據統稱爲重做。 數據通過重做日誌的通道由一個 不斷增加的LSN值表示。