mysql – MyISAM和InnoDB表在一个数据库中

我有一个包含大约30个表的数据库,其中5个表是写密集型的.

我在考虑

>转换5个写密集型表以使用InnoDB引擎,并将其余部分保留在MyISAM引擎上
>转换所有表以使用InnoDB引擎.

我想知道哪种方法更好?

更具体

我想在MyISAM引擎上保留一些表的原因是它们中的一些有大约1,000,000行.我不确定转换为InnoDB后这些表上的“SELECT COUNT(*)”查询会有多慢.

我没有做过测试.在开始转换之前,我更喜欢从你们这里得到一些建议.

最佳答案
这些天,我总是默认使用InnoDB,特别是在你提到的写密集表中,MyISAM遭受全表锁定.这是一个比较点.

使用MyISAM的原因:

>对于选择重的负载,表格非常快
>表级锁限制了写密集型多用户环境的可扩展性.
>最小的磁盘空间消耗
>全文索引
>合并和压缩表.

使用InnoDB的原因:

> ACID交易
>行级锁定
>一致读取 – 允许您达到出色的读写并发性.
>主键群集 – 在某些情况下可提供出色的性能.
>外键支持.
>可以缓存索引和数据页面.
>自动崩溃恢复 – 如果MySQL关闭不洁的InnoDB表仍将 – 恢复到一致状态 – 不像MyISAM那样需要检查/修复.
>与非事务性存储引擎相比,所有更新都必须通过InnoDB中的事务引擎(通常会降低)性能.

以上内容取自this site,似乎不再有效.

转载注明原文:mysql – MyISAM和InnoDB表在一个数据库中 - 代码日志