Escolhendo banco de dados MySQL: MyISAM ou InnoDB?

WordPress é projetado para funcionar apenas no banco de dados MySQL. Então, otimizando MySQL é uma coisa muito importante se você deseja executar WordPress o mais rápido possível sobre o hardware que você usa. Mas, isso pode não ser tão simples como você pode coisa, considerando que o MySQL pode ser usado muitos mecanismos de armazenamento.

Desde o MySQL 5.0, há 10 motores (sim, dez) de armazenamento no MySQL. Antes do MySQL 5.5 foi lançado, MyISAM foi motor de armazenamento padrão, e quando você cria uma nova tabela sem especificar motor, mesa usaria motor MyISAM. Após atualizar para o MySQL 5.5, motor padrão agora é InnoDB. Grande coisa sobre MySQL é que você pode usar diferentes mecanismos de armazenamento para cada tabela.

MyISAM

Esta é a velha (est) mecanismo de armazenamento no MySQL e mais comumente usado. Este motor é que é fácil de configurar (sem relações de chave estrangeira entre as tabelas, ou problemas de design). Ele é muito bom em operações de leitura relacionado e é compatível com a indexação de texto completo. Mas, ele tem muitas desvantagens: não há suporte transação, nenhuma verificação de integridade de dados (sem relações de mesa rigorosos) e suporta bloqueio de tabela só completa tornando-se mais lento se você precisa atualizar ou inserir dados, pois para cada atualização ou inserção, a tabela inteira será ser bloqueado tornando-o indisponível para outras consultas. Devido a isso, é MyISAM na boa média para a maioria das mesas WordPress. MyISAM funciona bem fora da caixa, e ele não precisa de muita otimização.Mesmo com a otimização, você não pode ganhar muito em termos de desempenho em relação a configuração padrão.

MyISAM não é muito confiável em caso de falha de hardware, o desligamento do processo ou alguma outra perturbação. Isso quase sempre irá causar corrupção de dados em função das últimas operações executadas.

InnoDB

Isso é relativamente novo motor e suporta transações, ele é muito rápido em operações de inserção ou de atualização, porque ele suporta linha de bloqueio permitindo múltiplas operações ao longo mesma mesa e ele suporta chaves estrangeiras para as relações de tabela.E tudo o que faz InnoDB grande quando a integridade dos dados é uma questão importante. Mas, criar tabelas com restrições de chave estrangeira nem sempre é simples, ele não suporta a indexação de texto completo e precisa de mais recursos (memória) que MyISAM. Além disso, você precisa passar algum tempo para otimizar este motor.Dependendo do nível de otimização e hardware utilizado, o InnoDB pode ser configurado para correr muito rápido, alguns relatórios até 20 vezes mais rápido do que a configuração padrão.

InnoDB não tem tamanho constante para a mesa. Mesmo quando você começa tamanhos de mesa, você precisa saber que os valores devolvidos são apenas estimativas.Isto vem de maneira diferente InnoDB processa dados, e por isso ele precisa de mais espaço para os dados que MyISAM. Mas, InnoDB é muito confiável, devido à natureza transacional das operações de dados, e torna muito boa escolha para sistemas em operação de backup são essenciais e muitas vezes necessário. Tabelas InnoDB são confiáveis ​​e tem muitas medidas de segurança implementadas para se certificar de que os dados permaneçam seguros.

O motor a escolher?

Bem, isso não é coisa fácil de responder. Desde o InnoDB agora é motor padrão (MySQL 5.5), quando você instala o novo WordPress no servidor executando o mais recente do MySQL, você provavelmente irá obter todas as tabelas InnoDB. Se tiver um servidor poderoso com uma grande quantidade de memória, você não vai notar qualquer lentidão (se InnoDB está configurado corretamente), e para muitas operações que você pode notar melhorias de velocidade.

Se você tem todas as tabelas do mecanismo MyISAM no banco de dados, você pode considerar a mudança alguns deles a motor InnoDB. Não há resposta certa aqui, e tudo depende do que você necessita para o seu banco de dados. Por padrão, o WordPress não usa indexação de texto completo, por isso torna OK para usar InnoDB. Se precisar de mais confiabilidade dos dados, InnoDB é o caminho a percorrer. Desde WordPress não usa chaves estrangeiras para as relações de mesa, escolha do motor também não é importante, tanto vai funcionar bem.

Para sites normais, sem grande tráfego, o motor não é tão importante. Problemas de velocidade entra em jogo, se você tem um monte de tráfego em seu site. Nesse caso, para algumas tabelas InnoDB é uma boa idéia se as tabelas precisam de um monte de atualização.Tipicamente, estas tabelas podem ser wp_options ,wp_usermeta , wp_comments tabelas. Além disso, se você tem algumas tabelas personalizadas (usado para visitas de monitoramento ou outros métodos de registro), essas tabelas devem ser tabelas InnoDB, considerando que a escrita com InnoDB é linha bloqueada permitindo muito mais threads para usar a tabela que com MyISAM.Também é preciso considerar que o InnoDB terá mais recursos do que MyISAM, por isso certifique-se de que você tem uma grande quantidade de memória, ou mesmo para usar servidor separado por apenas MySQL. Se você quiser usar a pesquisa de texto completo para algumas tabelas, não há escolha, você deve usar MyISAM.

Melhor coisa a fazer é testar ambos os motores para diferentes tabelas ao longo de um período (de novo, considere os recursos do servidor), e para encontrar a configuração de algumas tabelas com InnoDB e MyISAM alguns com equilíbrio. Além disso, certifique-se de verificar as configurações do MySQL para ambos os tipos de motores e consulte o administrador do sistema para certificar-se de que ambos são configurados para o melhor desempenho (isto é muito importante para InnoDB). encontrar o equilíbrio certo entre estes dois motores podem ganhar-lhe a velocidade extra. Usando apenas um motor é uma boa idéia se você tiver algum ambiente de replicação onde os motores diferentes pode afetar o desempenho de replicação. Nesse caso InnoDB provou como uma escolha melhor.

Eu acho que o WordPress na próxima revisão dos principais (talvez para 3.4 ou 3.5) deve considerar a definição de motores para cada tabela com base na função primária da tabela. Isso seria necessário alguns testes em profundidade, mas que valeria a pena ter melhor escolha de motores de o ir buscar.

Se você precisar de alguma informação mais aprofundada sobre os mecanismos de otimização e escolha do motor, eu recomendo que você verifique seguintes sites:

 

http://docs.dev4press.com/tutorial/wordpress/choosing-mysql-database-engine-myisam-or-innodb/

Deixe um comentário