我读到Innodb更适合在同时获得大量插入记录的表上使用。我的应用程序每秒获得大约50条记录。所以对于这些表我应该使用Innodb,对吧?
另一方面,我有一些仅用于选择的表,它们几乎没有更新或几乎没有新的插入。 MyIsam选择速度更快吗? 如果是这样的话,最好是把一些表放在MyIsam上,有些放在Innodb上,还是应该使用相同引擎的所有表?
我的应用程序还搜索了我想要在Innodb中传递的表格。我该怎么办?
答案 0 :(得分:2)
你可以查看这些:
使用MyISAM的原因:
- 对于选择重负载的表来说,表格非常快
- 表级锁定限制了它们在写密集型多用户环境中的可伸缩性。
- 最小的磁盘空间消耗
- 全文索引
- 合并和压缩表。
使用InnoDB的原因:
- ACID交易
- 行级锁定
- 一致性读取 - 允许您达到出色的读写并发性。
- 主键群集 - 在某些情况下可以提供出色的性能。
- 外键支持。
- 可以缓存索引页面和数据页面。
- 自动崩溃恢复 - 如果MySQL关闭不洁的InnoDB表仍将
- 恢复到一致状态 - 没有MyISAM可能需要的检查修复。所有更新都必须通过交易引擎 与root相比,InnoDB经常会降低性能 非事务性存储引擎。
引自here
以及最后一部分:
记住!可以在同一个数据库中混合表类型!事实上,它是推荐的,经常需要。但是,请务必注意,如果在加入这两种类型时遇到性能问题,请尝试将其中一种转换为另一种,然后查看是否可以修复它。这个问题并不经常发生,但已有报道。
引自here
我希望这就够了:D
答案 1 :(得分:1)
答案 2 :(得分:1)
简而言之,是的,你可以混合搭配你的内心。
请记住以下几点:
InnoDB是ACID投诉。因此,您需要使用InnoDB的任何ACID功能。 MyISAM不支持很多东西,例如外键约束。
现在速度很难准确量化。根据执行路径,您可能会获得非常大或非常小的速度差异。
测试并检查这里没有正确或错误的答案。