Olá, galera!
Acredito que muitos de vocês já fizeram esta pergunta inúmeras vezes e mesmo assim sempre fica aquele dúvida: MyISAM ou InnoDB. Afinal qual devo usar? Este assunto veio em minha mente agora, pois tenho um banco de dados InnoDB usado por uma aplicação desktop desenvolvida em Delphi. E atualmente, esta aplicação vem sendo implementada pra Web usando Flex e PHP. Com isso, o questionamento logo surgiu. Como será o desempenho da app com este banco? Vale a pena mudar pra MyISAM? Em busca de uma resposta concreta para este problema resolvi escrever este artigo. Primeiro vamos aos conceitos:
MyISAM
De acordo com as características da tabela que foi baseada no código ISAM, é indicado para armazenar dados que serão consultados frequentemente. Como por exemplo, um cadastro de estados e de cidades. As principais características do MyISAM são: seu limite de armazenamento de 256 TB, os dados comprimidos, a possibilidade de indexar também os campos BLOB e TEXT, a ausência de chaves estrangeiras (foreign key) e a ausência de transações (commit e rollback).
InnoDB
É o atual motor de armazenamento padrão do MySQL a partir da versão 5.5, devido a sua alta confiabilidade e performance. Suas principais vantagens são: o suporte a transações Commit, Rollback e Crach-Recovery, o suporte a chaves estrangeiras (Foreign Key), a possibilidade utilizar outros tipos de motores de armazenamento, o estilo Oracle de leitura consistente e de alta performance a multi-usuários, mantém sua própria área de buffer para armazenamento de dados. Com todas essas características talvez o seu limite de armazenamento passe desapercebido, mas é de 64 TB. Bem inferior ao do MyISAM. O que dependendo do tipo de aplicação não atrapalhará em nada.
O
1 MyISAMmecanismo de armazenamento funciona melhor com mais leitura de dados ou com operações de baixa concorrência, pois os bloqueios de tabela limita a capacidade de realizar atualizações simultâneas. No MySQL 5.5,
1 InnoDBé o motor de armazenamento padrão ao invés de
1 <span><span>MyISAM</span></span>.
Segue uma lista de links interessantes para um estudo mais aprofundado:
http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html
http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html
http://dev.mysql.com/doc/refman/4.1/pt/isam.html
http://en.wikipedia.org/wiki/ISAM
Tirem suas conclusões, façam seus testes! E não deixem de comentar este artigo adicionando suas experiências neste assunto. Pra quem ficou curioso em saber qual solução encontrei pra aplicação web. Adotei ambos, juntamente com configurações de performance do servidor para extrair o melhor de cada um.
Sucesso a todos!
Abraço




