我从性能的角度阅读了很多关于 MyISAM 和 InnoDB 比较的文章,我决定使用 MyISAM 读取数据,使用 InnoDB 写入数据。
我想使用两个结构,如下图所示。两个相同(同步)的数据库,但表引擎不同。
您对这种结构有何建议? 这种设计有什么缺点?
这种设计的缺点是你在写入时付出了巨大的复制代价,其中包括 InnoDB 假定的读取惩罚和 MyISAM 假定的写入惩罚,读取时可能会带来相当小的性能收益。
我认为你应该分享一些你的目标绩效水平。你建议的主要缺点是你得到了 MyISAM 的所有缺点(表级锁定和零崩溃恢复),而没有 InnoDB 的优点(崩溃恢复、行级锁定和事务)。你增加了复杂性,实际上没有任何好处。如果调优和使用得当,InnoDB 的性能实际上是相当不错的。我运行一组机器平均每秒处理 20k-30k 个查询,每秒总计数百万个查询,所有 InnoDB。性能不是问题。