MySQL – Qual e melhor – InnoDB ou MyISAM

Ao criar um banco de dados você se depara com a pergunta entre escolher o storage engine InnoDB ou MyISAM.innodb-vs-myisam-300x225

A diferença básica é que o MyISAM funciona de forma mais simples, com proteção de tabelas (table locking). O InnoDB se baseia em transações (transaction locking).

Em termos de perfórmance o MyISAM é melhor para tabelas fixas como uma tabela de cidades, localizações. O InnoDB é mais rápido para tabelas em constantes mudanças. Para grandes bancos pode fazer diferença escolher pelo InnoDB.

Por outro lado o InnoDB traz maior complexidade que pode refletir em problemas.

Com base na experiência de anos dos técnicos da Homehost vamos ao problema clássico que nos leva a indicar o MyISAM:

Para o funcionamento correto sua base em transações depende de um arquivo que contém um histórico de transações do MySQL, ao contrário do MyISAM que tem as tabelas, nada mais.

Em casos de problemas o MyISAM de certa forma ‘trava’ onde está e um simples check / repair volta onde estava de forma independente. Um botão no phpMyAdmin resolve.

O InnoDB está mais propício a corrompimento irrecuperável pois depende deste arquivo de transações. Dependendo do problema enfrentado o MySQL tenta utilizar as informações do arquivo com as transações para voltar, mas não consegue. Assim se chega a tragédia de perda de informações valiosas do InnoDB. Somente a recriação das tabelas e recuperação dos arquivos de backup em SQL voltam ao normal.

Se você está em dúvida sobre qual usar não pense duas vezes, siga o caminho do MyISAM.

Para DBA´s com mais experiência que lidam com bancos que dependem muito da velocidade o InnoDB é um bom caminho, mas depende de otimizações no my.cnf para dar bom resultado, e ainda assim é muito importante ter muitos backups pois problemas ao longo dos anos podem acontecer.

 

Referências:

http://www.oficinadanet.com.br/artigo/789/mysql_-_diferenca_entre_innodb_e_myisam

http://dba.stackexchange.com/questions/17431/which-is-faster-innodb-or-myisam

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

hhchat