InnoDB多版本併發控制——MVCC

Multi-Version Concurrency Control -多版本併發控制

MySQL的大多數事務存儲引擎實現的都不是簡單的行級鎖。基於提高併發性能的考慮,它們通常都同時實現了多版本併發控制(MVCC)。MVCC沒有統一的實現標準。能夠認爲MVCC是行級鎖的一個變種,它在不少狀況下避免了加鎖操做,開銷更低。Oracle,PostgreSQL都實現了MVCC,實現了非阻塞的讀操做,寫操做也只鎖定必要的行。併發

 

MVCC的實現,是經過保存數據在某個時間點的快照來實現的。也就是說,無論執行多長時間,每一個事物看到的數據都是一致的。根據事務開始的時間不一樣,每一個事務對同一張表,同一時刻看到的數據多是不同的。性能

 

不一樣存儲引擎的MVCC實現是不一樣的。典型的有樂觀併發控制和悲觀併發控制。.net

  • 樂觀併發控制blog

  • 悲觀併發控制事務

詳見:http://my.oschina.net/xinxingegeya/blog/505675get

======END======io

相關文章
相關標籤/搜索