我应该使用InnoDB或MyISAM作为“只写”表吗?

时间:2010-10-12 09:49:07

标签: mysql performance innodb archive myisam

我有一张桌子,我只是在写作。

将其视为“交易”列表,我保留所有详细信息,并且还有一个“总计”存储在另一个表中。对于性能而言,该总数是多余的,但如果需要,可以从此事务表中重新计算。

从性能的角度来看,有什么更好的事情,请记住,有几个人会同时插入(永不更新)这个从未读过的表?

我应该使用InnoDB还是MyISAM?

(我已经遇到了性能问题,我没有过早优化)

3 个答案:

答案 0 :(得分:4)

使用ARCHIVE存储方法。它正是为了这种写多次读取 - 几乎从不应用而制作的。

答案 1 :(得分:2)

通常你会将MyISAM用于只会增长的表格。 MyISAM还具有支持MERGE表的优势,因此您不必只有一个巨大的表。

但是,如果你“永远”不会从中读取,为什么要使用表呢?只需直接写入文件即可。我很好奇你的表现问题是什么。您可以通过复制查看Blackhole表类型。主人身上的黑洞,MyISAM或奴隶上的存档。

答案 2 :(得分:0)

你也可以使用带有INSERT DELAYED的MyISAM来立即从你的插件返回并让mysql在一个单独的线程中空闲时插入该数据。从应用程序的角度来看,它会加速插入,避免插入争用。但是,如果服务器在写入之前崩溃,则会导致数据不一致...