提交和回滚在Mysql的MyISAM中不起作用

时间:2013-07-29 07:30:58

标签: mysql commit rollback myisam

当我测试一些mysql提交和回滚过程时,我发现了一些关于MyISAM Engine的提交和回滚的问题。可以提交或回滚不在MyISAM引擎上工作吗?我可以在InnoDB和MyISAM Engine之间了解不同。

4 个答案:

答案 0 :(得分:10)

MyIASM不支持回滚和提交,你需要使用InnoDB。

Innodb和MyISAM之间的区别:

我看到的第一个主要区别是InnoDB实现了行级锁定,而MyISAM只能执行表级锁定。您将在InnoDB中找到更好的崩溃恢复。但是,它没有FULLTEXT搜索索引,MyISAM也是如此。 InnoDB还实现了事务,外键和关系约束,而MyISAM却没有。

列表可以更进一步。然而,他们都有自己独特的优势,相互之间有利。在某些情况下,它们中的每一种都比其他情况更适合。

总结一下:

  • InnoDB具有行级锁定功能,MyISAM只能执行完整的表级锁定。
  • InnoDB有更好的崩溃恢复功能。
  • MyISAM有FULLTEXT搜索索引,InnoDB没有。
  • InnoDB实现了事务,外键和关系约束,MyISAM没有。

答案 1 :(得分:3)

MyISAM不支持实际交易(好像所有内容都是在启用自动提交的情况下运行的):

http://dev.mysql.com/doc/refman/5.7/en/ansi-diff-transactions.html

答案 2 :(得分:1)

谷歌的第一个答案......“提交或回滚不能在MyISAM上工作”

http://forums.mysql.com/read.php?21,68686,68701#msg-68701

有时用户应该努力寻找某事而不是写作。

答案 3 :(得分:1)

InnoDB实现了交易。 MyISAM没有。 MyISAM是自动提交的。