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

Devo usar tabelas MyISAM ou InnoDB para meu banco de dados MySQL?

Sempre use o InnoDB por padrão.


No MySQL 5.1 posterior, você deve usar o InnoDB. No MySQL 5.1, você deve habilitar o plugin InnoDB . No MySQL 5.5, o plugin InnoDB está habilitado por padrão, então basta usá-lo.

O conselho de anos atrás era que o MyISAM era mais rápido em muitos cenários. Mas isso não é mais verdade se você usar uma versão atual do MySQL.

Pode haver alguns casos exóticos onde o MyISAM tem um desempenho marginalmente melhor para certas cargas de trabalho (por exemplo, varreduras de tabela ou trabalho somente INSERT de alto volume), mas a escolha padrão deve ser InnoDB, a menos que você possa provar você tem um caso que o MyISAM faz melhor.

As vantagens do InnoDB além do suporte para transações e chaves estrangeiras que geralmente são mencionadas incluem:
  • O InnoDB é mais resistente à corrupção de tabelas do que o MyISAM.
  • Bloqueio em nível de linha. No MyISAM, os leitores bloqueiam os escritores e vice-versa.
  • Suporte para grandes conjuntos de buffers para dados e índices. O buffer de chave MyISAM é apenas para índices.
  • MyISAM está estagnado; todo o desenvolvimento futuro será no InnoDB.

Veja também minha resposta para MyISAM versus InnoDB