Dav*_*son 6 mysql performance myisam innodb
当然,对于交易数据库来说,InnoDB是一个扣篮.MyISAM不支持事务或行级锁定.
但是,如果我想做一些触及数亿行的大讨厌批处理查询呢?
MyISAM相对于InnoDB有相对优势吗?
例如,我知道的一个(次要)......"从my_table中选择计数(*);" MyISAM立即知道答案,而InnoDB可能需要一分钟或更长时间才能做出决定.
---戴夫
MyISAM可以使用非常大的数据集进行扩展.在许多情况下,InnoDB的性能优于MyISAM,直到它无法将索引保留在内存中,然后性能急剧下降.
MyISAM还支持MERGE表,这是一种"穷人"分片.您可以即时添加/删除非常大的数据集.例如,如果每个业务季度有1个表,则可以创建过去4个季度或特定年份或任何所需范围的合并表.您可以重新声明基础MERGE表内容,而不是导出,删除和导入以转移数据.不需要更改代码,因为表的名称不会更改.
当您只添加到表时,MyISAM也更适合日志记录.与MERGE表一样,您可以轻松地换出(旋转"日志")表格和/或复制它.
您可以将与MyISAM表关联的数据库文件复制到另一台计算机,并将它们放在MySQL数据目录中,MySQL会自动将它们添加到可用的表中.你不能用InnoDB做到这一点,你需要导出/导入.
这些都是特定的情况,但我已经多次利用了每一个.
当然,通过复制,您可以使用两者.表可以是主服务器上的InnoDB和服务器上的MyISAM.结构必须相同,而不是表类型.然后你可以充分利用两者.BLACKHOLE表类型以这种方式工作.