2013-03-02 61 views
2

什麼是MySQL用於交易? MVCC(多版本併發控制)或行級鎖定。?
如果兩個我們怎麼能從一個轉移到另一個。在MySQL中的交易

回答

4

這不取決於MySQL本身,而是取決於使用的引擎,例如, InnoDB或MyIsam。


InnoDB的交易模式,我們的目標是一個多版本數據庫的最好特性與傳統的兩相結合的鎖定。 InnoDB在行級別上鎖定,默認情況下按Oracle風格運行查詢作爲非鎖定一致性讀取。 InnoDB中的鎖表非常節省空間地存儲,不需要鎖定升級:通常,允許多個用戶鎖定InnoDB表中的每一行或任何行的隨機子集,而不會導致InnoDB內存耗盡。

(來源:http://dev.mysql.com/doc/refman/5.0/en/innodb-transaction-model.html


MySQL使用表級鎖定對MyISAM,存儲器和MERGE表,只允許一個會話在一個時間來更新這些表,使得它們更適合對於只讀,主要讀取或單用戶應用程序。

(來源:http://dev.mysql.com/doc/refman/5.1/en/internal-locking.html

+0

thanx的答覆 – Rohit 2013-03-02 17:28:11

+0

正如每兩相鎖定,外部SQL語句不能訪問由該事務,直到事務的中間語句修改的數據被提交,但沒有阻擋的外部sql語句,儘管一些事務處於中間。它是如何發生的?兩個鎖相真的存在嗎?我使用的數據庫引擎是INNODB – Rohit 2013-03-02 17:28:41