Estou usando a réplica de leitura do AWS RDS. Ele constantemente apresenta problemas com as tabelas de mecanismo de memória do Magento. Para réplicas de backup e leitura, o RDS adora o InnoDB. Posso alterar com segurança todas as tabelas para o InnoDB?
Além disso, recebo o seguinte aviso da AWS:
Instância de banco de dados magento-monin-prod-db contém tabelas MyISAM que não foram migradas para o InnoDB. Essas tabelas podem afetar sua capacidade de executar restaurações pontuais. Considere converter essas tabelas para o InnoDB. Consulte http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.CommonDBATasks.html#MySQL.CommonDBATasks.Tables
Resposta plausível
Ainda interessado em feedback. Adicionarei isso como resposta se não encontrar nenhum problema nas próximas 24 horas. Até agora, os passos que segui abaixo parecem seguros. Minha maior preocupação eram as tabelas do Mecanismo de Memória do Magento (tabelas terminadas em in_tmp) e o impacto que isso poderia ter na indexação.
Aqui está o que eu fiz:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE (ENGINE = 'Memory' OR ENGINE='MyIsam') AND TABLE_SCHEMA='magento_db'
- Para mim, isso retornou principalmente tabelas de índices temporárias e tabelas de módulos magento, portanto, não há muitas tabelas principais críticas para se preocupar e poucas tabelas suficientes para que eu possa executar facilmente outra tabela de alterações se algo atingir o ventilador.
Para cada tabela retornada, executei:
Alter table {table-name} ENGINE=InnoDB;
Eu ficaria nervoso em tentar isso se nenhuma de suas mesas for InnoDB. Mas, como eu disse antes, havia apenas algumas tabelas principais na minha instância que precisavam ser modificadas.
Respostas:
Não há problema em alterar o tipo de dados para InnoDB, supondo que um dos seguintes seja verdadeiro:
Pessoalmente, eu recomendaria fazer isso com a Magento DB Repair Tool para minimizar o risco e também verificar qualquer outro desvio ou problema na configuração do DB. O InnoDB é o mecanismo ideal, apesar das limitações de texto completo .
fonte
Depois, você não deve converter todas as tabelas para o InnoDB.
catalogsearch_fulltext
deve permanecer MyISAM, porque o InnoDB não tem suporte à pesquisa de texto completo, pelo menos até o MySQL 5.6 (iirc).Para todas as outras tabelas, no entanto, deve ser seguro.
fonte
Acabei de alterar o mecanismo padrão do MySQL para InnoDB e a maioria das minhas tabelas Magento se transformou milagrosamente em InnoDB (algumas ainda são MyISAM e outras são Memory).
Só pensei em compartilhar isso ...
fonte