Я использую AWS RDS Read Replica. У него постоянно возникают проблемы с таблицами движка памяти Magento. За резервное копирование и чтение реплик RDS любит InnoDB. Могу ли я смело менять все таблицы на InnoDB?
Кроме того, я получаю следующее предупреждение от AWS:
Инстанс БД magento-monin-prod-db содержит таблицы MyISAM, которые не были перенесены в InnoDB. Эти таблицы могут повлиять на вашу способность выполнять восстановление на определенный момент времени. Рассмотрите возможность преобразования этих таблиц в InnoDB. Пожалуйста, обратитесь к http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.CommonDBATasks.html#MySQL.CommonDBATasks.Tables
Правдоподобный ответ
Еще интересует обратная связь. Я добавлю это как ответ, если я не найду никаких проблем в течение следующих 24 часов. Шаги, которые я предпринял ниже, пока что безопасны. Больше всего меня беспокоили таблицы подсистемы памяти Magento (таблицы, заканчивающиеся на 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. Но, как я уже говорил, в моем экземпляре было только несколько основных таблиц, которые нужно было изменить.