Uma das maiores razões para a lentidão encontrada em sites WordPress de grande escala é que a base de dados não está otimizada. Muitos sites antigos seguem usando o mecanismo de armazenamento MyISAM para sua base de dados. Nos últimos anos, o InnoDB mostrou um desempenho melhora e mais confiável. Uma justificação importante para usar o InnoDB em vez do MyISAM é a falta de bloqueio total no nível de tabela. Isso permite que as suas consultas sejam processadas mais rapidamente.
- InnoDB vs MyISAM
- Você Está Usando o MyISAM ou o InnoDB?
- Converter MyISAM para InnoDB com o phpMyAdmin
- Converter MyISAM para InnoDB com o WP-CLI
InnoDB vs MyISAM
Aqui ficam algumas das principais diferenças entre InnoDB e MyISAM:
- O InnoDB possui bloqueio no nível de linha. O MyISAM só tem bloqueio total no nível de tabela.
- O InnoDB tem aquilo que é designado por integridade referencial que envolve o apoio a chaves estrangeiras (RDBMS) e restrições de relacionamento, o MyISAM não (DMBS).
- O InnoDB tem suporte para transações, o que significa que você pode confirmar e reverter. O MyISAM não.
- O InnoDB é mais confiável, já que utiliza registros transacionais para recuperação automática. O MyISAM não.
Você Está Usando o MyISAM ou o InnoDB?
Se estiver trabalhando com um site WordPress relativamente novo, é provável que você já esteja usando o mecanismo de armazenamento MySQL InnoDB. Mas com sites mais WordPress mais antigos, é melhor fazer uma verificação rápida. Alguns sites podem até ter misturado e combinado tabelas MyISAM e InnoDB, situação em que você pode efetuar melhorias, convertendo todas elas. Siga esses passos simples para verificar a situação.
Passo 1
Entre no phpMyAdmin e clique na sua base de dados MySQL.
Passo 2
Faça uma verificação rápida ou ordene a coluna por “Tipo” e poderá ver os tipos de mecanismos de armazenamento que suas tabelas estão usando. No exemplo abaixo, você pode ver que duas das tabelas continuam usando o MyISAM.
Em alternativa, pode executar uma consulta para ver se existem tabelas myISAM. Substitua ‘database’ pelo nome da sua base de dados.
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'
Converter MyISAM para InnoDB com o phpMyAdmin
Pode converter o MyISAM para o InnoDB com muita facilidade. O exemplo abaixo usa a tabela wp_comments
Só precisa executar o comando ALTER para o converter para o mecanismo de armazenamento InnoDB. Nota: Recomendamos sempre fazer backup da sua base de dados MySQL antes de executar qualquer operação.
ALTER TABLE wp_comments ENGINE=InnoDB;
Em alternativa, também pode fazer a conversão manual com o phpMyAdmin. Basta clicar na tabela myISAM, depois no separador “Operações” e alterar o mecanismo de armazenamento.
Converter MyISAM para InnoDB com o WP-CLI
O WP-CLI é uma ferramenta de linha de comando que permite aos desenvolvedores gerenciarem tarefas comuns (e não tão comuns assim) relacionadas com uma instalação WordPress. Confira esse artigo sobre como converter MyISAM para InnoDB com o WP-CLI.