Cara Migrasi Dari MyISAM ke InnoDB di MySQL Secara Aman dan Mudah

Sejak waktu itu saya telah menjalankan situs ini, saya telah memiliki perkelahian saya dengan menjaga website berjalan lancar. Namun, seiring waktu, saya telah mengidentifikasi beberapa daerah kita perlu memperbaiki dan salah satunya telah MySQL.
Masalah yang saya telah dengan MySQL adalah apakah akan menggunakan mesin MyISAM atau InnoDB mesin tapi memiliki lebih baru-baru ini miring ke arah menggunakan InnoDB lebih sering daripada tidak karena keuntungan itu untuk situs lalu lintas tinggi. Meskipun, saya tidak akan menjelaskan keuntungan secara rinci di sini, saya mungkin akan meminta Anda untuk membaca artikel saya tentang mengapa kita beralih ke InnoDB.
Namun demikian, di sini adalah tutorial singkat dan mudah tentang cara beralih dari mesin ke mesin MyISAM InnoDB aman dan mudah. Anda dapat menjalankan query pada command prompt atau menggunakan GUI seperti PHP MyAdmin juga. Namun, Anda harus mencatat bahwa data dalam tabel MyISAM Anda mungkin tidak mirip dengan tabel baru Anda karena sering update dan Anda mungkin ingin merencanakan downtime sehingga Anda tidak kehilangan data atau harus sync tabel lagi.
Jadi tanpa basa-basi lagi, berikut adalah langkah-langkahnya:

Buat Tabel Replica

Langkah pertama adalah membuat tabel replika yang Anda ingin beralih mesin untuk, untuk itu menjalankan query di bawah ini. Pastikan untuk mengganti nama tabel yang sesuai.
CREATE TABLE new_table LIKE old_table;

Setelah Anda menjalankan query ini Anda akan memiliki tabel baru yang memiliki skema yang sama sebagai tabel yang lebih tua dan Anda sudah di jalan.

Drop Indeks fulltext dalam Tabel Baru

Perbedaan terbesar, jika Anda mengukur dengan cara itu adalah bahwa tabel InnoDB tidak mendukung indeks FULLTEXT. Jadi sebelum kita melakukan hal lain Anda harus menjatuhkan indeks fulltext dari tabel baru Anda buat. Untuk melakukan itu ikuti langkah-langkah di bawah ini.
Jalankan query:
SHOW INDEX from new_table where index_type=’FULLTEXT’;
Hapus indeks individu dari query (rename indexname untuk indeks Anda ingin menjatuhkan):
ALTER TABLE new_table DROP INDEX indexname;

Setelah Anda melakukan itu, Anda sekarang siap untuk memindahkan Anda tabel MyISAM ke InnoDB mesin. Jadi mari kita maju dengan itu.

Pindah Tabel MyISAM ke InnoDB Mesin

Langkah berikutnya adalah mengupdate Engine tabel MySQL Anda ke InnoDB. Untuk itu, Anda harus menjalankan query berikut:
ALTER TABLE new_table ENGINE = InnoDB;

Itu saja. Anda sekarang memiliki tabel baru dalam format InnoDB, sekarang Anda hanya perlu untuk memindahkan data.

Pindahkan Data Dari Tabel Lama ke Tabel Baru

Anda akan perlu untuk memindahkan data dari tabel lama ke tabel baru. Untuk melakukan itu, jalankan query berikut:
INSERT new_table SELECT * FROM old_table;

Dan data ini akhirnya ada. Langkah terakhir, namun tidak sedikit adalah untuk beralih di antara tua tabel MyISAM untuk tabel InnoDB baru Anda.

Rename Tabel Lama ke Tabel Cadangan dan New ke Old

Jalankan query berikut untuk mengubah nama tabel Anda:
Rename Table old_table TO old_table_backup;
Rename Table new_table TO old_table;
Itu saja. Anda sekarang telah berhasil bermigrasi Anda tabel MyISAM ke mesin InnoDB sementara memiliki cadangan yang Anda dapat dengan cepat beralih ke dengan mengganti nama tabel cadangan lagi.
Sumber: http://techie-buzz.com/webmaster-tips/migrate-from-myisam-to-innodb-mysql-safely.html

0 ɹɐʇuǝɯoʞ: