J'utilise AWS RDS Read Replica. Il a constamment des problèmes avec les tables du moteur de mémoire de Magento. Pour les répliques de sauvegarde et de lecture, RDS adore InnoDB. Puis-je changer toutes les tables en toute sécurité en InnoDB?
De plus, je reçois l'avertissement suivant d'AWS:
L'instance DB magento-monin-prod-db contient des tables MyISAM qui n'ont pas été migrées vers InnoDB. Ces tableaux peuvent affecter votre capacité à effectuer des restaurations ponctuelles. Pensez à convertir ces tables en InnoDB. Veuillez vous référer à http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.CommonDBATasks.html#MySQL.CommonDBATasks.Tables
Réponse plausible
Toujours intéressé par les commentaires. J'ajouterai ceci comme réponse si je ne trouve aucun problème dans les prochaines 24 heures. Jusqu'à présent, les mesures que j'ai prises semblent être sûres. Ma plus grande préoccupation était les tables Memory Engine de Magento (tables se terminant par_tmp) et l'impact que cela pourrait avoir sur l'indexation.
Voici ce que j'ai fait:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE (ENGINE = 'Memory' OR ENGINE='MyIsam') AND TABLE_SCHEMA='magento_db'
- Pour moi, cela a renvoyé principalement des tables d'index temporaires et des tables de modules magento, donc pas beaucoup de tables de base critiques à craindre et peu de tables que je peux facilement exécuter une autre table alter si des trucs frappent le ventilateur.
Pour chaque table retournée, j'ai exécuté:
Alter table {table-name} ENGINE=InnoDB;
Je serais nerveux d'essayer ceci si aucune de vos tables n'est InnoDB. Mais, comme je l'ai déjà dit, il n'y avait que quelques tables de base sur mon instance qui devaient être modifiées.
Réponses:
Il est correct de changer le type de données en InnoDB, en supposant que l'une des conditions suivantes est vraie:
Personnellement, je recommanderais de le faire avec l' outil de réparation Magento DB pour minimiser les risques et vérifier également toute autre dérive ou problème de configuration DB. InnoDB est le moteur idéal, malgré ses limitations fulltext .
la source
Afaik vous ne devriez pas convertir toutes les tables en InnoDB.
catalogsearch_fulltext
devrait rester MyISAM, car InnoDB ne prend pas en charge la recherche de texte intégral, du moins pas avant MySQL 5.6 (iirc).Pour toutes les autres tables, cependant, cela devrait être sûr.
la source
Je viens de changer le moteur par défaut MySQL en InnoDB et la plupart de mes tables Magento se sont miraculeusement transformées en InnoDB (certains sont toujours MyISAM et certains sont Memory).
Je pensais juste partager ça ...
la source