MySQL将使用什么来处理事务?MVCC(多版本并发控制)还是行级锁定?
如果两者都能从一个转移到另一个。
发布于 2013-03-02 13:39:17
这并不取决于MySQL本身,而是依赖于使用过的引擎,例如InnoDB或MyIsam。
在InnoDB事务模型中,目标是将多版本数据库的最佳属性与传统的两阶段锁定结合起来。InnoDB在行级上执行锁定,并在默认情况下以Oracle的样式以非锁定一致的方式运行查询。InnoDB中的锁表存储空间非常有效,因此不需要锁升级:通常,允许多个用户锁定InnoDB表中的每一行或行的任意子集,而不会导致InnoDB内存耗尽。
(资料来源:http://dev.mysql.com/doc/refman/5.0/en/innodb-transaction-model.html)
MySQL对MyISAM、内存和合并表使用表级锁定,允许一次只更新一个表,从而使它们更适合于只读、多读或单用户应用程序。
(资料来源:http://dev.mysql.com/doc/refman/5.1/en/internal-locking.html)
https://stackoverflow.com/questions/15175092
复制相似问题