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.
Jawaban:
Tidak masalah untuk mengubah tipe data ke InnoDB, dengan asumsi salah satu dari yang berikut ini benar:
Secara pribadi saya akan merekomendasikan melakukan ini dengan Magento DB Repair Tool untuk meminimalkan risiko dan juga memeriksa drift konfigurasi DB lain atau masalah. InnoDB adalah mesin yang ideal, meskipun memiliki keterbatasan teks lengkap.
sumber
Afaik Anda tidak harus mengkonversi semua tabel ke InnoDB.
catalogsearch_fulltext
harus tetap MyISAM, karena InnoDB tidak memiliki dukungan pencarian teks lengkap, setidaknya tidak sampai MySQL 5.6 (iirc).Namun, untuk semua tabel lainnya, itu harus aman.
sumber
Saya baru saja mengubah mesin default MySQL ke InnoDB dan sebagian besar tabel Magento saya secara ajaib mengubah diri mereka menjadi InnoDB (beberapa masih MyISAM dan beberapa Memori).
Hanya berpikir saya akan membagikan ini ...
sumber