Unir desempenho em tabelas MyISAM e InnoDB

2

Estou pensando em converter algumas tabelas do MyISAM para o InnoDB no meu servidor mysql. As tabelas certamente se beneficiarão da mudança, pois muitas solicitações de gravação chegam a essas tabelas, enquanto há muitas solicitações de leitura ao mesmo tempo.

No entanto, eles geralmente são associados a algumas tabelas que quase não recebem gravações. Existe uma penalidade de desempenho ao unir as tabelas MyISAM e InnoDB ou tudo deve funcionar bem?

Segunda pergunta: Durante os backups à noite, eu estou copiando dados das tabelas InnoDB para as tabelas MyISAM para fins de arquivamento. Nesses backups, muitos pedidos de gravação acontecem, no entanto, quase não há leitura dessas tabelas de arquivamento. Essas tabelas também se beneficiariam do uso do InnoDB ou isso seria apenas um desperdício de espaço e RAM?

    
por j0nes 14.01.2011 / 09:38

1 resposta

5

A conversão de tabelas do MyISAM para o InnoDB realmente beneficiará gravações simultâneas e também bloqueios atômicos.

A combinação de tabelas InnoDB e MyISAM não deve afetar o desempenho da junção, a menos que essas joins tentem bloquear a tabela MyISAM completa (altamente improvável), fazer um EXPLAIN sempre ajudará a diagnosticar as consultas.

Sobre a segunda questão, uma vez que são tabelas de backup e quase nunca usadas, elas certamente tiram proveito do MyISAM para ser o mais versátil possível.

Lembre-se destes parâmetros InnoDB : Incrível em escrita simultânea, bloqueio granular, mas não tão bom em escrita serial e também usa mais memória MyISAM : Muito leve, incrível em escrita serial, não é tão bom em escrita simultânea, menor tamanho de memória

    
por 14.01.2011 / 10:57