1.DB_TRX_ID:一個6byte的標識,每處理一個事務,其值自動+1 #下面提到的“創建時間”和“刪除時間”記錄的就是這個DB_TRX_ID的值 #如insert、update、delete操作時,刪除操作用1個bit表示。 #DB_TRX_ID是最重要的一個,可以通過語句“show engine innodb status”來查找 2.DB_ROLL_PTR: 大小是7byte,指向寫到rollback segment(回滾段)的一條undo log記錄 (update操作的話,記錄update前的ROW值) 3.DB_ROW_ID: 大小是6byte,該值隨新行插入單調增加。 #當由innodb自動產生聚集索引時聚集索引(即沒有主鍵時,因為MYSQL默認聚簇表,會自動生成一個ROWID) #包括這個DB_ROW_ID的值, #不然的話聚集索引中不包括這個值,這個用於索引當中。
DB_TRX_ID記錄了行的創建的時間刪除的時間在每個事件發生的時候,每行存儲版本號,而不是存儲事件實際發生的時間。
每次事物的開始這個版本號都會增加。自記錄時間開始,每個事物都會保存記錄的系統版本號。
依照事物的版本來檢查每行的版本號。
在insert操作時 “創建時間”=DB_TRX_ID,這時,“刪除時間”是未定義的;在update時,復制新增行的“創建時間”=DB_TRX_ID,刪除時間未定義,舊數據行“創建時間”不變,
刪除時間=該事務DB_TRX_ID;delete操作,相應數據行的“創建時間”不變,刪除時間=該事務的DB_ROW_ID;select操作對兩者都不修改,只讀相應的數據