MyISAM 和 InnoDB 表的连接性能

j0n*_*nes 2 mysql performance innodb myisam

我正在考虑将一些表从 MyISAM 转换为我的 mysql 服务器中的 InnoDB。表肯定会从变化中受益,因为很多写请求来到这些表,同时也有相当多的读请求。

但是,它们通常与一些几乎没有任何写入的表连接在一起。将 MyISAM 和 InnoDB 表连接在一起时是否会降低性能,或者一切正常?

第二个问题:在夜间备份期间,我将数据从 InnoDB 表复制到 MyISAM 表以进行归档。在这些备份中,发生了很多写请求,但是几乎没有从这些存档表中读取。这些表是否也会从使用 InnoDB 中受益,还是只是浪费空间和 RAM?

lyn*_*man 5

将表从 MyISAM 转换为 InnoDB 将真正有益于并发写入和原子锁定。

InnoDB 和 MyISAM 表的混合在任何情况下都不应该影响连接性能,除非这些连接尝试锁定完整的 MyISAM 表(极不可能),这样做EXPLAIN总是有助于诊断查询。

关于第二个问题,由于它们是备份表并且几乎从未使用过,因此它们肯定会利用 MyISAM 来尽可能提高写入性能。

记住这些参数 InnoDB:在并发写入方面很棒,粒度锁定但在串行写入方面不太擅长并且还使用更多内存 MyISAM:非常轻,在串行写入方面很棒,不太擅长并发写入,较小的内存占用