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