MySQL鎖機制與MVCC

Dodd發表於2014-04-04

在MySQL資料庫中,使用表級鎖定的主要是MyISAM,Memory,CSV等一些非事務性儲存引擎,而使用行級鎖定的主要是Innodb儲存引擎和NDBCluster儲存引擎,頁級鎖定主要是BerkeleyDB儲存引擎的鎖定方式。

MySQL InnoDB事務隔離級別支援四種:

  • READ_UNCOMMITTED
    讀未提交時,讀事務直接讀取主記錄,無論更新事務是否完成
  • READ_COMMITTED
    讀提交時,讀事務每次都讀取undo log中最近的版本,因此兩次對同一欄位的讀可能讀到不同的資料(幻讀),但能保證每次都讀到最新的資料。
  • REPEATABLE_READ
    每次都讀取指定的版本,這樣保證不會產生幻讀,但可能讀不到最新的資料
  • SERIALIZABLE
    鎖表,讀寫相互阻塞,使用較少。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7220098/viewspace-1136066/,如需轉載,請註明出處,否則將追究法律責任。

相關文章