使用InnoDB和MyIsam表的组合

时间:2009-12-24 17:39:33

标签: mysql

我有2个表格,我希望在这些表格中更加健壮,幸运的是,不需要经常快速填写数据和检查。 所有其他表格都不可避免地是MyISAM。

我可以安全地使用两者(我已经从中读过一些劝阻)而不用担心错误或数据会受到引擎之间差异的影响吗?

2 个答案:

答案 0 :(得分:26)

你可以,但这带来了许多缺点:

  • 您的服务器调优现在必然是妥协 - 您不能将所有内存用于MyISAM或InnoDB(注意:如果它们位于不同的服务器上则不适用)
  • 复制在许多边缘情况下失败,因为如果您的事务失败,其中包含对某些MyISAM表的更改,则它既无法正确提交也无法将其回滚
  • 您仍然无法使用MVCC备份服务器,因为您仍然无法获得MyISAM表的一致快照

基本上,我鼓励你完全切换到InnoDB。那么你几乎可以忘记MyISAM而不是投入资源,并获得使用InnoDB的全部好处。任何认为MyISAM速度更快的人要么没有正确调整InnoDB,要么关注那些关心的小数据。

MyISAM可以更快地进行表扫描,但如果您在大型表上进行扫描,则会遇到更大的问题。

答案 1 :(得分:11)

是的,你可以。

请注意,只有InnoDB个表支持事务和FOREIGN KEY关系。