Blog.YHT.Web.ID

Icon

Bosan adalah awal dari penciptaan perubahan.

MySQL : Defragmentasi Tabel InnoDB dan MyISAM

Beberapa hari yang lalu ada seorang Administrator sebuah website internal instansi yang mempertanyakan masalah fragmentasi data. Kebetulan basis data yang dipakai adalah MySQL dan menggunakan mesin penyimpanan InnoDB.

Website tersebut rata-rata memiliki 1500 s/d 2000 hit dalam sekali waktu (melihat status online pada web, tidak tahu ini benar atau tidak) dan seringkali tidak bisa menghubungi basis data saat koneksi sudah mencapai > 2000. Sangat mengganggu memang, mengingat banyak informasi yang dibutuhkan dari web tersebut.

Berbeda dengan mesin penyimpanan MyISAM yang menyimpan data 1 berkas (file) per tabel, InnoDB menyatukannya pada sebuah berkas yang besar. Bila berkas hanya sekian MB saja akses dan perubahan data tidak menjadi masalah. Namun bagaimana bila web tersebut adalah web sibuk yang mengalami perubahan data yang pesat hingga mencapai >1GB dan akses hit yang tinggi? Untuk itulah diperlukan defragmentasi.

Yang dimaksud defragmentasi di sini adalah mencocokan kembali index dan isi data. Ketika ada data masuk, data akan memiliki tempat di akhir berkas dan index terbesar. Ketika ada data dihapus index dihapus sedangkan data masih ada.Hal inilah yang seringkali membuat sisa tempat di media penyimpanan Anda semakin sempit dan tentu saja menurunkan kinerja mesin Anda.

Bagaimana cara mengatasinya? Pada mesin penyimpanan InnoDB Anda bisa menggunakan tehnik `null alter table`. Berikut perintahnya :

mysql > ALTER TABLE nama_tabel ENGINE = InnoDB;

Sedangkan untuk mesin penyimpanan MyISAM Anda bisa menggunakan tehnik reparasi tabel. Berikut perintahnya :

mysql > REPAIR TABLE nama_tabel;

Memang banyak sekali faktor yang menyebabkan proses mesin lambat, namun perintah ini berguna dimesin yang dipakai web tersebut.

Referensi :
http://dev.mysql.com/doc/refman/5.0/en/innodb-file-defragmenting.html
http://dev.mysql.com/doc/refman/5.0/en/repair-table.html

Kategori: /mysql

Tag: , ,

Leave a Reply