關於鬼影記錄的翻譯二

2021-09-08 09:34:56 字數 2027 閱讀 5909

之前寫過一篇文章 inside the storage engine: ghost cleanup in depth.

今天有乙個問題在我教的那個班的其中乙個學生被提出來,關於鬼影記錄的,所以我想用

一篇博文記錄一下

問題:鬼影記錄會發生在堆表中嗎?答案是:no 除非在不正常的情況下

當快照隔離級別開啟的時候,堆表的記錄刪除會被記錄為鬼影記錄,作為版本管理的

的一部分,這會產生一些有趣的作用。乙個版本記錄會在末尾新增14個位元組的標籤,

所以堆表裡的乙個記錄會比之前長度增加了14個位元組的長度,這會意味著記錄存放在

乙個資料頁裡已經不再合適。這會導致記錄移動,並會造成記錄前滾,僅僅是因為記錄刪除了

現在,頁面是充滿資料的,儲存引擎會採取一些措施去避免記錄少於32個位元組的長度

不過繼續可能太深入了。

無論怎樣,先拋開議題。我想展示給你在聚集索引表中刪除記錄和在堆表中刪除記錄的不同

我準備建立兩張表,然後都刪除記錄,然後回滾

先執行下面sql語句

這是一部分的事務日誌記錄。圖中紅色框部分是我關閉了自動更新統計資訊

為了阻止其他無關事務的產生,以便更好地觀察結果

上面那個紅色框部分的第乙個事務,是回滾聚集索引的刪除記錄操作的。你可以清晰看到

第三列顯示出乙個記錄的刪除使用了鬼影記錄,另外,可以看到有設定pfs頁裡的點陣圖中的位

以標記這個頁面有鬼影記錄存在。

上面第二個紅色框的那部分,是回滾堆表的刪除記錄操作的。這裡你可以看到資料庫做的

是乙個直接刪除記錄的動作。

如果你在做回滾操作之前檢視過資料頁的內容,你會看到聚集索引表裡的記錄標記為鬼影記錄

而堆表裡的記錄你會看到真的是直接刪除了

希望這篇文章幫到你

關於鬼影記錄的翻譯二

之前寫過一篇文章 inside the storage engine ghost cleanup in depth.今天有乙個問題在我教的那個班的其中乙個學生被提出來,關於鬼影記錄的,所以我想用 一篇博文記錄一下 問題 鬼影記錄會發生在堆表中嗎?答案是 no 除非在不正常的情況下 當快照隔離級別開啟...

關於鬼影記錄的翻譯二

之前寫過一篇文章 inside the storage engine ghost cleanup in depth.今天有乙個問題在我教的那個班的其中乙個學生被提出來,關於鬼影記錄的,所以我想用 一篇博文記錄一下 問題 鬼影記錄會發生在堆表中嗎?答案是 no 除非在不正常的情況下 當快照隔離級別開啟...

關於技術文件的翻譯

最近有人與我 有沒有必要把時間花在技術文件的翻譯上面,我個人覺得是非常有必要的,理由如下 1 提高英文的閱讀能力和對單詞的理解能力。翻譯有個特點,就是要字斟句酌。所以翻譯即是精讀。你不會漏過任何一段文字,你會注意到很多詞在不同地方的用法,這對提高你的英文水平是很有幫助的。所以我覺得學好英語有兩點 一...