代码之家  ›  专栏  ›  技术社区  ›  Rohit

MySQL中的事务

  •  3
  • Rohit  · 技术社区  · 11 年前

    什么会 MySQL数据库 用于交易? MVCC(多版本并发控制)或行级锁定 .?
    如果两者都有,我们怎么能从一个转移到另一个。

    1 回复  |  直到 11 年前
        1
  •  5
  •   Benjamin M    11 年前

    这并不取决于MySQL本身,而是取决于所使用的 发动机 ,例如InnoDB或MyIsam。


    创新数据库 事务模型,目标是将多版本数据库的最佳属性与传统的两阶段锁定相结合。 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 )