混合MyISAM和InnoDB引擎进行数据库设计

时间:2011-12-05 15:14:29

标签: mysql database innodb myisam

我的一位朋友是DBA,他评论说,在MySQL中设计架构时,混合MyISAM和InnoDB在DBA社区中相当普遍。

我的问题是,如果这是真的,那么它有多好?它在可维护性,可扩展性等方面是否有任何影响?

3 个答案:

答案 0 :(得分:7)

使用MyISAM的原因通常很少。较新版本的MySQL(5.5+)扩展了InnoDB,以支持以前只能在MyISAM上使用的所有功能(例如全文和地理空间索引),并且在正确配置时,InnoDB性能通常比MyISAM好得多。

除非您使用的是旧版本的MySQL,或者您有非常这样做的理由,否则我建议您在任何新的数据库设计中使用InnoDB。

答案 1 :(得分:3)

恕我直言,这是关于MySQL的一个可怕的事情:它让你在速度和全文索引(MyISAM)和参照完整性和事务(InnoDB)之间做出选择。如果可以,我强烈建议切换到PostgreSQL:除了许多其他优点之外,您还可以在一个存储引擎中获得速度,全文索引,事务和参照完整性。 (我根本不再使用MySQL进行新项目。)

如果您必须坚持使用MySQL,我建议在所有表格上使用InnoDB,除非您有特殊原因不这样做。

答案 2 :(得分:1)

实用说明。

我做了很多次。值得注意的是,在一个系统中,查询将整个表锁定为myisam,我们将一些关键表转换为innodb,因此它们锁定在行级别。这消除了流程中的一些瓶颈,并且在此更改后我在公司工作了18个月,并且该解决方案没有任何问题。支持的应用程序也对数据库进行了相当密集的使用,因此任何不足之处都会很快曝光。