O que acontece com as tabelas InnoDB e MyISAM se a energia falhar durante uma transação?

2

Temos duas tabelas MySQL, uma é InnoDB e a outra é MyISAM. Se eu executar um bloco 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?

    
por Ash 24.11.2011 / 03:14

2 respostas

1

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

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

Se a integridade dos dados e evitar a contenção de bloqueios (bloqueios de linha innodb vs bloqueios de tabela myisam) forem imprescindíveis, use o Innodb.

    
por 24.11.2011 / 05:00
1

Meu entendimento (não tenho certeza) é:

  • O InnoDB irá reverter a transação completamente.
  • O MyISAM reterá os dados que foram inseridos até o ponto da falha de energia.
por 24.11.2011 / 04:50