mysql 多版本並發控制

來源:互聯網
上載者:User

標籤:技術   技術分享   src   資料   upd   insert   ges   定義   版本號碼   

MVCC

通過給每張表多加兩個隱藏列來實現,一個儲存了行的建立時間,一個儲存了行的到期時間(或刪除時間),時間對應版本 

建立一個新的事務,會建立一個新的版本號碼

前提條件

a. InnoDB只尋找版本早於當前事務版本的資料行

b. 行的刪除版本要麼未定義,要麼大於當前事務版本

處理機制

INSERT

   InnoDB為新插入的每一行儲存當前系統版本號碼作為行版本號碼

DELETE

   InnoDB為刪除的每一行儲存當前系統版本好作為刪除標識

UPDATE

  InnoDB為插入一行新紀錄,儲存當前系統的版本號碼,同時將當前系統版本好儲存到原來行的刪除標識

以更新為例:

A,B 兩個事務

A 事務  

      1. 建立A事務版本號碼為v1

      2. 查詢時  當前行的版本號碼為v1

      3. 更新  先進行刪除操作 版本號碼為v3 然後更新 行刪除版本號碼為v3

      

B事務

      1.建立B事務版本號碼為2

      2. 查詢時  當前行的版本號碼為2

      3. 更新  先進行刪除操作 版本號碼為v4 然後更新 行刪除版本號碼為v4

 

兩個事務同時更新會建立4條臨時紀錄

然後選擇其中一條作為結果。

 

mysql 多版本並發控制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.