Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Quando usar MyISAM e InnoDB?


Leia sobre Storage Engines .

MeuISAM:

O MyISAM mecanismo de armazenamento no MySQL.
  • Mais simples de projetar e criar, portanto, melhor para iniciantes. Não se preocupe com as relações externas entre as tabelas.
  • Mais rápido que o InnoDB em geral, como resultado da estrutura mais simples, portanto, muito menos custos de recursos do servidor. -- A maioria não é mais verdadeira.
  • Indexação de texto completo. -- O InnoDB tem agora
  • Especialmente bom para tabelas de leitura intensa (seleção). -- A maioria não é mais verdadeira.
  • A pegada do disco é 2x-3x menor que a do InnoDB. -- A partir da versão 5.7, esta é talvez a única vantagem real do MyISAM.

InnoDB:

O InnoDB mecanismo de armazenamento no MySQL.
  • Suporte para transações (oferecendo suporte para o ACID propriedade).
  • Bloqueio em nível de linha. Ter um mecanismo de bloqueio mais refinado oferece maior simultaneidade em comparação com, por exemplo, MyISAM .
  • Restrições de chave estrangeira. Permitindo que você deixe o banco de dados garantir a integridade do estado do banco de dados e os relacionamentos entre as tabelas.
  • O InnoDB é mais resistente à corrupção de tabelas do que o MyISAM.
  • Suporte para grandes conjuntos de buffers para dados e índices. O buffer de chave MyISAM é apenas para índices.
  • MyISAM está estagnado; todos os aprimoramentos futuros estarão no InnoDB. Isso ficou bem claro com o lançamento da versão 8.0.

Limitações do MyISAM:
  • Sem chaves estrangeiras e exclusões/atualizações em cascata
  • Sem integridade transacional (conformidade ACID)
  • Sem recursos de reversão
  • Limite de 4.284.867.296 linhas (2^32) -- Este é o antigo padrão . O limite configurável (para muitas versões) foi de 2**56 bytes.
  • Máximo de 64 índices por tabela

Limitações do InnoDB:
  • Sem indexação de texto completo (versão mysql abaixo de 5.6)
  • Não pode ser compactado para rápido, somente leitura (5.5.14 introduzido ROW_FORMAT=COMPRESSED )
  • Você não pode reparar uma tabela InnoDB

Para uma breve compreensão, leia os links abaixo:
  1. Mecanismos MySQL:InnoDB vs. MyISAM – Uma comparação de prós e contras
  2. Mecanismos MySQL:MyISAM vs. InnoDB
  3. Quais são as principais diferenças entre InnoDB e MyISAM?
  4. MyISAM versus InnoDB
  5. Qual ​​é a diferença entre MyISAM e InnoDB?
  6. MySql:MyISAM vs. Inno DB!