3

MySQL将使用什么来处理事务?MVCC(多版本并发控制)或行级锁定。?
如果两者都有,我们怎么能从一个转移到另一个。

4

1 回答 1

5

这不依赖于 MySQL 本身,而是依赖于使用的引擎,例如 InnoDB 或 MyIsam。


InnoDB事务模型中,目标是将多版本数据库的最佳属性与传统的两阶段锁定相结合。InnoDB 在行级别上进行锁定,默认情况下以非锁定一致性读取的形式运行查询,采用 Oracle 的风格。InnoDB 中的锁表的存储空间效率很高,因此不需要锁升级:通常,允许多个用户锁定 InnoDB 表中的每一行,或行的任何随机子集,而不会导致 InnoDB 内存耗尽。

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


MySQL对 MyISAM、MEMORY 和 MERGE 表使用表级锁定,一次只允许一个会话更新这些表,使它们更适合只读、多读或单用户应用程序。

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

于 2013-03-02T13:39:17.940 回答