Vou converter todas as tabelas do banco de dados de 500 MB do MyISAM para o InnoDB para ver se ele melhorará o desempenho geral de um site do Drupal 6 ocupado. Gostaria de saber qual é a melhor maneira (ou seja, mais segura / mais fácil / mais rápida) de fazer a conversão.
9
Respostas:
Como DBA do MySQL, confio no MySQL para fazer a conversão, fazendo com que o MySQL escreva o script para mim.
Forme o comando Linux, execute esta consulta
O script converterá as tabelas menores primeiro. Esse script também ignorou as tabelas MyISAM que possuem índices FULLTEXT.
Depois de examinar o script, você pode simplesmente executá-lo no MySQL da seguinte maneira:
ou se você quiser ver o tempo de cada conversão, entre no mysql e execute:
Isso não deve ser confuso, porque um bloqueio de tabela completo acontece quando a conversão está sendo executada.
Depois que todas as tabelas forem convertidas, você precisará ajustar as configurações do MySQL para uso do InnoDB e reduzir o key_buffer.
Leia isso para configurar o InnoDB Buffer Pool: /dba/1/what-are-the-main-differences-between-innodb-and-myisam/2194#2194
Leia também: /drupal/1715/what-would-the-optimal-mysql-configuration-for-a-drupal-7-site-be/2367#2367
De uma chance !!!
fonte
Eu escrevi um comando drush para isso há um tempo atrás.
Trabalhou para mim há um ano, mais ou menos, não tenho certeza se a API drush mudou desde então.
Você pode colocar isso em um convert.drush.inc, por exemplo, na pasta .drush ou executá-lo de alguma forma no seu site, por exemplo, com o bloco devel execute php. Como um script drush, você pode chamar assim:
Aviso : Se alguém fizer algo com o banco de dados enquanto esses comandos são executados, seu banco de dados será completamente destruído. Irrecuperavelmente. Portanto, coloque seu site no modo de manutenção e faça um backup antes de tentar isso! E, é claro, tente primeiro um site de desenvolvimento / teste :)
fonte