Eu tenho um único banco de dados de cerca de 4,5 GB em execução em um servidor com 8 GB de RAM. A grande maioria das tabelas é MyIsam (cerca de 4,3 GB), mas em breve vou converter algumas delas no InnoDB. (Vai ser um processo lento, concentrando-se nas tabelas com maior intensidade de gravação no início).
Há algo de errado em executar um servidor dedicado em que ambos os tipos de mecanismos de armazenamento existem?
mysql
innodb
myisam
storage-engine
Derek Downey
fonte
fonte
Is there anything wrong with running a dedicated server where both types of storage engines exist?
Talvez reformular paraMultiple types
?Respostas:
Não há nada errado em usar vários mecanismos de armazenamento na mesma máquina física, desde que você entenda os prós e os contras de cada um. Existem considerações de desempenho, limitações de recursos e casos de uso para todos os tipos de armazenamento de plug-ins.
Por exemplo, se você tiver uma tabela pequena com 90% de gravação, poderá escolher MyISAM. Se os dados puderem ser regenerados facilmente e for uma tabela pequena, digamos para enfileiramento, você poderá escolher Memória. Se você tem uma tabela com 90% de leitura e os dados precisam estar lá quando você a procura, provavelmente escolheria um mecanismo de armazenamento que suporte transações e atomicidade configurável, como o InnoDB. Se você deseja acessibilidade através do sistema de arquivos sem dados prejudiciais, poderá escolher CSV.
No entanto, você pode usar com segurança vários mecanismos de armazenamento no mesmo esquema e no host físico.
Deixe-me notar, porém, que seus amortecedores desempenham um papel em toda essa bagunça. Se você usa o MyISAM e o InnoDB, precisará ter cuidado para que seu key_buffer e innodb_buffer_pool não contenham. Isso exigirá um planejamento cuidadoso de sua parte, mas é isso que fazemos.
fonte
Não sei dizer se essa é uma prática comum. Eu posso dizer sobre minha própria experiência.
Eu sempre uso a melhor ferramenta para o trabalho, então eu misturo motores o tempo todo. A maioria dos meus projetos usa o MyISAM como o mecanismo padrão.
Quando preciso de recursos especiais disponíveis apenas no InnoDB, vou em frente.
Quando uma tabela é principalmente somente leitura, escolho o mecanismo de arquivamento antes de poder piscar.
Sabendo que o servidor da máquina possui memória suficiente, todos os meus dados temporários são armazenados nas tabelas Heap.
Vi no passado algumas lentidões misturando MyISAM e InnoDB, mas este não é um problema específico do MySQL. É um problema de design que não aparece quando você usa apenas um mecanismo. Na verdade, usar o mecanismo errado causa mais lentidão, não importa se é apenas o MyISAM, apenas o InnoDB ou uma mistura dos dois. É difícil definir uma fórmula para saber quando a desaceleração aconteceria. Apenas testes reais podem dizer isso para você.
Obviamente, você não poderia preservar a integridade e a consistência misturando o InnoDB e o MyISAM em uma consulta exclusiva.
fonte
Eu tento evitar misturar tabelas MyISAM e InnoDB no mesmo banco de dados, mas isso é mais por razões de sanidade do que por razões práticas. No entanto, acho útil ter um banco de dados com tabelas MyISAM para pesquisa de texto completo, para que eu possa executá-lo em sites. Mantê-lo em um banco de dados separado com uma chave estrangeira para cada entrada facilita para qualquer outro desenvolvedor que trabalha no banco de dados ver o que está acontecendo.
fonte