Monday, February 21, 2011

Hindari Penggunaan JOIN table di MYSQL

Kali ini sedang menghandle database MYSQL dengan ukuran data yang cukup besar >15MB dimana data-data ini diakses di website yang sudah lama online.
Salah satu module yang digunakan, mengambil data dengan cara menjoin 2 table, dimana masing-masing table berisi data yang cukup banyak, tiap table ukuran kira-kira 3MB. Ketika module ini dijalankan aksesnya lama sekali bahkan membuat web server hang dan tidak bisa diakses lagi. Ternyata biang masalahnya adalah karena men-join 2 table dengan ukuran data yang sangat besar itu tidak baik, karena ketika dijoin maka dia akan mencocokkan satu persatu data sebanyak jumlah data di masing-masing table, sehingga membutuhkan memori dan waktu yang banyak.
Solusi, jangan menggabungkan table, jika kondisi data besar, tapi gunakan function terpisah untuk mengambil data di table lain, dimana di function ini tentunya menerima parameter data yang akan dibutuhkan saja. Dan ternyata metode seperti ini sangat optimal dan aksesnya berjalan normal.