Mengganti storage engine MySQL

Saat beberapa hari lalu memindahkan sebuah situs WordPress saya baru sadar kalau storage engine yang dipakai adalah MyISAM bukannya InnoDB pada databasenya. Hal ini terlihat pada log hasil pemulihannya. Cukup heran aslinya seingat saya semuanya sudah standar menggunakan InnoDB untuk setiap tabelnya. Pertimbangan pribadi memaksimalkan performa, fitur dan mengurangi resiko korupsi data maka solusi yang saya pilih adalah dengan mengkonversi mesin penyimpanannya.

Sanggahan ya, jangan lupa backup dulu database anda sebelum melakukan konversi storage engine nanti. Walaupun saya sudah sering melakukannya tapi namanya merubah format atau mesin sebuah tabel database tetap ada resiko rusak. 🙂 Metode berikut berlaku untuk MySQL dan forknya MariaDB dan Percona.

Seperti biasa silahkan login dulu ke database server MySQL anda:

mysql -u root -p

Kita akan masuk sebagai root dan nanti akan ditanyakan passwordnya.

Kemudian silahkan tentukan database mana yang ingin dipakai:

USE nama_database;

Setelah itu baru kita konversi storage engine tabel yang ada dalam database tersebut:

ALTER TABLE  wp_posts ENGINE=InnoDB;

Ini contohnya saya mengganti salah satu tabel posting WordPress dari MyISAM menjadi InnoDB.

Nanti akan muncul pesan informasi seperti berikut secara berurutan:

Stage: 1 of 2 'copy to tmp table'    46% of stage
Stage: 2 of 2 'enabling keys'      0% of stage done

Query OK, 48011 rows affected (12.94 sec)              
Records: 48011  Duplicates: 0  Warnings: 0

Selesai. Anda perlu melakukannya satu per satu untuk setiap tabel yang terdapat di dalamnya. Sayangnya tidak bisa konversi secara massal, atau lebih tepatnya saya belum tahu cara yang tepat saja. Silahkan kalau ada yang mau menambahkan atau koreksi. 🙂

Tambahan, daftar storage engine yang bisa didukung MySQL dan forknya (kadang ada tidaknya tergantung versi yang digunakan): MyISAM, InnoDB, MERGE, MEMORY (HEAP), BDB (BerkeleyDB), EXAMPLE, ARCHIVE, CSV, BLACKHOLE, dan ISAM.

Semoga bermanfaat. 🙂

Tinggalkan komentar