Melhorando o desempenho em WordPress passando de MyISAM para InnoDB

Recentemente eu estava lidando com alguns problemas de bloqueio em bancos de dados de suporte WordPress. Para aqueles que não sabem ainda o WordPress é uma ferramenta muito legal open source para fácil blogging.Esta ferramenta é muito fácil de instalar (basta arrastar e soltar em seu diretório home) e torná-lo realmente fácil para você se levantar e correr.Como parte desta instalação fácil, existem algumas coisas que não são as melhores práticas para o bom desempenho e locais escaláveis. Estas limitações estão relacionadas com o uso de MyISAM como um mecanismo de armazenamento. Este motor foi durante muitos anos o mecanismo de armazenamento padrão no MySQL. Isso mudou, felizmente, com 5,5, mas em instalações anteriores MyISAM vai estar lá para o uso.Mecanismo de armazenamento MyISAM é realmente bom em recuperação de dados, mas:
– ele não suporta concorrência
– todas as operações provoca bloqueio em nível de tabela (isso não é inteiramente verdade, mas na maior parte)
– não é falhar-seguro (você vai odiá-lo durante um acidente)

Vamos nos concentrar nas primeiras duas coisas.O que poderia acontecer se você tem um site muito visitado? Simplesmente, com a degradação da tabela normal (dados e fragmentação do índice) o seu site vai se tornar muito lento para responder. Confie em mim, eu já vi essa situação, especialmente durante seu pico de uso quando a concorrência é fundamental.

Mas (e há sempre um mas), há uma boa notícia para aqueles que têm esses problemas com o bloqueio durante a pós ou consultá-los: WordPress suporta InnoDB!

O que isto significa? Bem, InnoDB é o mecanismo de armazenamento do MySQL utilizado em alta concorrência, alta estabilidade e cenários de alto desempenho.

Ok, então agora você está pensando em como você pode fazer isso em seu ambiente? Vamos tentar algumas abordagens diferentes:

1- Se você já instalou o WordPress são dois os scripts fáceis para obter a lista de comando para realizar mudanças apropriadas e fazer essas mudanças (graças 619cloud !!):

mysql -uuser -p -e “show tables in db_name;” | tail –lines=+2 | xargs -i echo “ALTER TABLE {} ENGINE=INNODB;” > alter_table.sql

mysql -uuser -p nome_db <alter_table.sql

2-Se você não tem o WordPress instalado ainda, então você tem duas opções possíveis para fazer antes de iniciar a instalação:
a- Para aqueles de vocês que estão se sentindo preguiçoso, definir o mecanismo de armazenamento padrão, adicionando a linha abaixo para my.cnf arquivo e Reinicie o MySQL:

default-storage-engine=innodb.

A partir deste ponto, todas as novas tabelas serão InnoDB, exceto que você definir o mecanismo de armazenamento em seu DDL.

b-Para aqueles de vocês que querem fazer trabalho extra para si mesmos e não querem mudar o seu ambiente, você pode modificar os arquivos de instalação que criar e modificar o esquema utilizado pelo WordPress. Como você pode fazer isso? Fácil. Vamos dar uma caminhada neste pequeno como.

Execute este comando shell dentro da pasta WordPress:

find *.php | xargs -n1 sed -i -e 's/) ENGINE=InnoDB $charset_collate;/) ENGINE=innodb $charset_collate;/g'

Isso vai mudar todos os arquivos que possuem comandos DDL para usar ENGINE = InnoDB durante mesa criação.

A partir de agora, cada vez que você instalar uma nova instância do WordPress, você terá uma escalável, de alto desempenho e aplicação simultânea do usuário.

Uma resposta para “melhorar o desempenho em WordPress passando de MyISAM para InnoDB”

 

http://www.pythian.com/blog/enhancing-performance-in-wordpress-by-moving-from-myisam-to-innodb/

Deixe um comentário