Я використовую AWS RDS Read Replica. У ньому постійно виникають проблеми із таблицями двигуна пам'яті Magento. Для резервного копіювання та читання реплік RDS любить InnoDB. Чи можу я безпечно змінити всі таблиці на InnoDB?
Крім того, я отримую таке попередження від AWS:
Базовий екземпляр DB magento-monin-prod-db містить таблиці MyISAM, які не були переміщені до InnoDB. Ці таблиці можуть вплинути на вашу здатність виконувати відновлення часу. Подумайте про перетворення цих таблиць у InnoDB. Зверніться до http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.CommonDBATasks.html#MySQL.CommonDBATasks.Tables
Правдоподібна відповідь
Ще цікавлять відгуки. Я додам це як відповідь, якщо протягом найближчих 24 годин я не знайду жодних проблем. Наведені нижче кроки здаються безпечними. Моє найбільше занепокоєння викликало таблиці пам'яті Magento Memory Engine (таблиці, що закінчуються in_tmp) та вплив, який він може мати на індексацію.
Ось що я зробив:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE (ENGINE = 'Memory' OR ENGINE='MyIsam') AND TABLE_SCHEMA='magento_db'
- Для мене це повернуло здебільшого тимчасові таблиці індексів та таблиці модулів magento, тому не так багато критичних ядерних таблиць, про які слід турбувати, і мало таблиць, які я можу легко виконати іншу таблицю змін, якщо матеріал потрапить у вентилятор.
Для кожної поверненої таблиці я виконав:
Alter table {table-name} ENGINE=InnoDB;
Я б нервував спробувати це, якщо жодна з ваших таблиць не є InnoDB. Але, як я вже говорив раніше, у моєму екземплярі було лише кілька основних таблиць, які потрібно було змінити.