我有一个将日志写入数据库的软件,这些日志将存储大约2-3个月。有些人希望随时查询这些日志。系统每秒写入avg 5000行(1000个批量插入),主键不存在,但不同列有6个索引。顺便说一下,表有20列,没有任何外键。
由于需要巨大的磁盘大小,我不想使用innodb表。如您所知,MyISAM表的大小比相同的innodb表小三(或更多)倍。我计划每月使用不同的表并压缩比本月更早的表。使用myisampack实用程序,myisam表比使用innodb更容易压缩。出于这些原因,我想使用myisam表。
但我们知道myisam对腐败不安全。如果它们被破坏我不想丢失myisam表。它指示我使用innodb进行实时日志。经过一段时间(5分钟或1小时或午夜)后,我想把我的记录放到myisam表中。但是使用“alter table ... engine = myisam”命令转换表需要花费大量时间来处理大量数据。
我可以使用不同的数据库并将innodb数据复制到myisam表,这是一种替代方案。但我之前有一些复制问题,我不确定使用它。我认为其他选项是将记录加倍(同时使用innodb和myisam表)。但它会降低查询和磁盘性能。
你对这种情况有什么建议?它可以是引擎转换建议或全新的架构建议。
谢谢, 塞利姆