O que acontece com as tabelas InnoDB e MyISAM se houver falha de energia durante uma transação?

O que acontece com as tabelas InnoDB e MyISAM se houver falha de energia durante uma transação?

Temos duas tabelas MySQL, uma é InnoDB e a outra é MyISAM. Se eu executar um pedaço de inserções em uma única transação em ambas as tabelas e a energia falhar no meio, qual será o status?

O que acontecerá com os dados recém-inseridos nas tabelas InnoDB e MyISAM?

Responder1

Innodb é um banco de dados transacional, ele armazena alterações do banco de dados nos arquivos de log de transações, usando validação de soma de verificação, ele confirma ou reverte transações na próxima reinicialização após uma falha ou queda de energia.

MyISAM não possui um sistema transacional para reverter commits de transações malsucedidas. Portanto, a corrupção do banco de dados se torna um grande problema em servidores flakey com poder flakey.

Se a integridade dos dados e evitar a contenção de bloqueios (bloqueios de linha innodb versus bloqueios de tabela myisam) são essenciais, você escolhe o Innodb.

Responder2

Meu entendimento (não tenho certeza) é:

  • O InnoDB irá reverter a transação completamente.
  • MyISAM reterá todos os dados inseridos até o ponto da falha de energia.

informação relacionada