站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        認識InnoDB MVCC如何工作

        認識InnoDB MVCC如何工作

        InnoDB 的 MVCC,是通過在每行記錄后面保存兩個隱藏的列實現(xiàn)的。這兩個列,一個保存了行的創(chuàng)建時間,一個保存行的過期時間(或刪除時間)。當然存儲的不是實際的時間值,而是系統(tǒng)版本號。每開始一個新的事務(wù),系統(tǒng)版本號都會自動遞增。事務(wù)開始時刻的系統(tǒng)版本號會作為事務(wù)的版本號,用來和查詢到的每行記錄的版本號進行比較,下面看可重復讀隔離級別下,MVCC 具體是如何操作的。

        SELECT

        InnoDB會根據(jù)以下兩個條件檢查每行記錄

        a. InnoDB只查找版本早于當前事務(wù)版本的數(shù)據(jù)行(也就是,行的系統(tǒng)版本號小于或者等于事務(wù)的系統(tǒng)版本號),這樣可以確保事務(wù)讀取的行,要么是在事務(wù)開始前已經(jīng)存在的,要么是事務(wù)自身插入或者修改過的。

        b. 行的刪除版本要么未定義,要么大于當前事務(wù)版本號。這可以確保事務(wù)讀取到的行,在事務(wù)開始之前未被刪除。

        只有符合上述兩個條件的記錄,才能作為查詢結(jié)果返回。

        INSERT

        InnoDB為新插入的每一行保存當前系統(tǒng)版本號作為行版本號

        DELETE

        InnoDB為刪除的每一行保存當前系統(tǒng)版本號作為行刪除標識。

        UPDATE

        InnoDB為插入一行新紀錄,保存當前系統(tǒng)版本號作為行版本號,同時保存當前系統(tǒng)版本號到原來的行作為行刪除標識。

        保存這兩個額外系統(tǒng)版本號,使大多數(shù)讀操作都可以不用加鎖。這樣設(shè)計使得讀數(shù)據(jù)操作很簡單,性能很好,并且也能保證只會讀取符合標準的行。不足之處是每行記錄都需要額外的存儲空間,需要做

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 国产美女精品一区二区三区| 国产精品一区在线播放| 国产国产成人精品久久| 亚洲国产精品视频| 精品国产午夜理论片不卡| 国产亚洲精品不卡在线| 99精品热这里只有精品| 亚洲人午夜射精精品日韩| 国产精品男男视频一区二区三区| 国产精品高清一区二区三区不卡 | 免费人妻精品一区二区三区| 精品国产污污免费网站| 国内精品久久久久久99蜜桃| 四虎精品免费永久免费视频| 国产精品自在线拍国产电影| 97久久精品人人做人人爽| 成人精品在线视频| 国产三级久久久精品麻豆三级| 亚洲AV永久纯肉无码精品动漫 | 精品视频一区二区三区免费| 国产精品后入内射日本在线观看| 亚洲国产另类久久久精品小说 | 久久亚洲精品人成综合网| 中文字幕久久精品| 亚洲精品欧美二区三区中文字幕| 久久久久人妻一区精品| 欧美成人精品网站播放 | 999国产精品色在线播放| 欧美日韩精品在线| 四虎影视国产精品永久在线 | 99九九精品免费视频观看| 老司机91精品网站在线观看| 久久99国产精品久久99| 久久国产免费观看精品| 欧美一区二区精品久久| 91亚洲精品自在在线观看| 国产精品亚洲mnbav网站| 精品人妻少妇一区二区三区在线| 精品福利一区二区三区| 日本精品一区二区久久久| 亚洲无码精品浪潮|