Estoy usando la réplica de lectura de AWS RDS. Constantemente tiene problemas con las tablas del motor de memoria de Magento. Para las réplicas de copia de seguridad y lectura, RDS ama a InnoDB. ¿Puedo cambiar de forma segura todas las tablas a InnoDB?
Además, recibo la siguiente advertencia de AWS:
La instancia de base de datos magento-monin-prod-db contiene tablas MyISAM que no se han migrado a InnoDB. Estas tablas pueden afectar su capacidad para realizar restauraciones de punto en el tiempo. Considere convertir estas tablas a InnoDB. Consulte http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.CommonDBATasks.html#MySQL.CommonDBATasks.Tables
Respuesta plausible
Todavía interesado en comentarios. Agregaré esto como respuesta si no encuentro ningún problema en las próximas 24 horas. Los pasos que tomé a continuación parecen ser seguros, hasta ahora. Mi mayor preocupación eran las tablas de Memory Engine de Magento (tablas que terminaban en_tmp) y el impacto que podría tener en la indexación.
Aquí esta lo que hice:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE (ENGINE = 'Memory' OR ENGINE='MyIsam') AND TABLE_SCHEMA='magento_db'
- Para mí, esto devolvió principalmente tablas de índice temporales y tablas de módulos de magento, por lo que no hay muchas tablas fundamentales críticas de las que preocuparse y pocas tablas suficientes para poder ejecutar fácilmente otra tabla alternativa si las cosas golpean al ventilador.
Para cada tabla devuelta ejecuté:
Alter table {table-name} ENGINE=InnoDB;
Estaría nervioso probar esto si ninguna de sus tablas es InnoDB. Pero, como dije antes, solo había unas pocas tablas principales en mi instancia que debían modificarse.
Respuestas:
Está bien cambiar el tipo de datos a InnoDB, suponiendo que uno de los siguientes es verdadero:
Personalmente, recomendaría hacer esto con la herramienta de reparación de DB Magento para minimizar el riesgo y también verificar cualquier otra deriva o problemas de configuración de DB. InnoDB es el motor ideal, a pesar de las limitaciones de texto completo .
fuente
Afaik no debe convertir todas las tablas a InnoDB.
catalogsearch_fulltext
debería permanecer MyISAM, porque InnoDB no tiene soporte de búsqueda de texto completo, al menos hasta MySQL 5.6 (iirc).Sin embargo, para todas las demás tablas, debería ser seguro.
fuente
Acabo de cambiar el motor predeterminado de MySQL a InnoDB y la mayoría de mis tablas de Magento se transformaron milagrosamente a InnoDB (algunas siguen siendo MyISAM y algunas son Memory).
Solo pensé en compartir esto ...
fuente