Saya menggunakan AWS RDS Read Replica. Itu terus-menerus memiliki masalah dengan tabel mesin Memori Magento. Untuk membuat cadangan dan membaca replika, RDS menyukai InnoDB. Bisakah saya mengubah semua tabel dengan aman ke InnoDB?
Selain itu saya mendapatkan peringatan berikut dari AWS:
DB Instance magento-monin-prod-db berisi tabel MyISAM yang belum dimigrasi ke InnoDB. Tabel ini dapat memengaruhi kemampuan Anda untuk melakukan pemulihan point-in-time. Pertimbangkan untuk mengonversi tabel ini ke InnoDB. Silakan merujuk ke http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.CommonDBATasks.html#MySQL.CommonDBATasks.Tables
Jawaban yang masuk akal
Masih tertarik dengan umpan balik. Saya akan menambahkan ini sebagai jawaban jika saya tidak menemukan masalah dalam 24 jam ke depan. Langkah-langkah yang saya ambil di bawah ini tampaknya aman, sejauh ini. Kekhawatiran terbesar saya adalah tabel Memory Engine Magento (tabel berakhiran in_tmp) dan dampaknya pada pengindeksan.
Inilah yang saya lakukan:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE (ENGINE = 'Memory' OR ENGINE='MyIsam') AND TABLE_SCHEMA='magento_db'
- Bagi saya ini mengembalikan sebagian besar tabel indeks sementara dan tabel modul magento, jadi tidak banyak tabel inti penting yang perlu dikhawatirkan dan beberapa tabel yang cukup sehingga saya dapat dengan mudah menjalankan tabel alter lain jika ada hal-hal yang menyentuh kipas angin.
Untuk setiap tabel yang dikembalikan, saya menjalankan:
Alter table {table-name} ENGINE=InnoDB;
Saya akan gugup untuk mencoba ini jika tidak ada meja Anda yang InnoDB. Tetapi, seperti yang saya katakan sebelumnya, hanya ada beberapa tabel inti pada instance saya yang perlu dimodifikasi.