| Kesalahan yg biasa dibuat oleh developer |
| Tuesday, 23 November 2010 17:02 | |||
|
Database merupakan salah satu fundamental dalam pembuatan aplikasi web. PHP developer menggunakan MYSQL yg sudah menjadi paket seperti LAMP, XAMPP atau yg lainnya. PHP untuk pemula relatif lebih mudah untuk dipelajari seperti membuat kode dan fungsi/prosedur. Namun membuat aplikasi yg terintegrasi dengan database seperti MYSQL akan membutuhkan dan pengalaman yg cukup. Berikut ini beberapa kesalahan yg biasa dibuat oleh developer. 1. Menggunakan MyISAM daripada InnoDB MySQL mempunyai jenis database engine yg sering digunakan seperti MyISAM and InnoDB. Waktu menginstalnya MyISAM sudah menjadi standar (default). MyISAM tidak mendukung foreign key constraints atau transactions, yg lebih menekankan pada data integritas, selain itu juga setiap melakukan transaksi insert atau update table akan di kunci, hal ini yg mempengaruhi performance dari database. Namun untuk aplikasi yang sangat sederhana atau eksperimental dan jumlah transaksi sedikit hal tersebut tidak menjadi pertimbangan.
2. Penggunan fungsi mysql di PHP PHP menyediakan fungsi-fungsi untuk mengolah data MySQL. Yang lebih sering digunakan dalam membuat aplikasi untuk mengolah data MySQL yaitu mysql_connect, mysql_query, mysql_fetch_assoc, dsb. Tetapi PHP manual states:
Dan yg mendukung muliple database bisa menggunakan PDO
3. Tidak memvalidasi data yg diinput oleh user Validate every string using server-side PHP — don’t rely on JavaScript. The simplest SQL injection attacks depend on code such as: Pastikan semua data yg masuk ke aplikasi sudah divalidasi sebelum melakukan transaksi ke database tidak hanya dari sisi user (Javascript), perintah sederahana untuk melakukan serangan SQL Injection
Perintah “ SELECT userid FROM usertable WHERE username='admin'; -- AND password='$password';" Cracker akan bisa menggunakan aplikasi sebagai admin tanpa harus mengetahui passwordnya dengan memberikan remark pada perintah sql
4. Tidak menggunakan UTF-8 Meminimalisai masalah karena jenis karakter, untuk mencegahnya gunakan setingan UTF-8 MySQL character sets
5. Tidak Memaksimalkan fungsi PHP dan MySQL Performance dari sebuah aplikasi dipengaruhi bagaimana baris perintah dan alur proses aplikasi itu dibuat. Salah satunya dengan memaksimalkan fungsi-fungsi yg ada di PHP atau MySQL. contohnya penggunaan fungsi MySQL’s AVG() function, untuk mendapatkan nilai rata-rata developer menggunakan looping untuk menjumlahkan semua baris angka dan membaginya jumlah barisnya. akan lebih efektif proses tersebut dilakukan di database dengan perintah AVG() function. Dengan menguasai fungsi-fungsi database utnuk menganalisa data akan lebih banyak membantu untuk meningkatkan performance aplikas yg dibuat.
6. Perintah SQL yg tidak maksimal. 99% masalah performance aplikasi disebabkan dari database, satu perintah SQL yg buruk akan menurunkan performance dari aplikasi. Menggunakan perintah MySQL EXPLAIN statement, Query Profiler atau aplikasi lain yg dapat digunakan untuk mencari perintah SELECT yg bermasalah seperti jetprofiler, myprofi.
7. Penggunaan tipe data yg tidak tepat Type data MySQL ada numeric, string, and time. Kalau menyimpan data yg tipenya tanggal lebih baik menggunakan yg tipe data DATE or DATETIME. menggunakan tipe lain seperti INTEGER atau STRING dapat membuat perintah SQL akan lebih sulit bahkan.
8. Mengunakan * di perintah SELECT Jangan pernah menggunakan * untuk mendapatkan dari table, tampilkan memang yg perlu untuk ditampilkan dan jangan malas untuk menuliskan setiap kolom data yg akan diambil meskipun semua field yg akan diambil.
9. Indexing yg tidak sesuai kebutuhan Indexes pada umumnya dibuat disetiap kolom yg sering digunakan di perintah WHERE ketika men SELECT data, dengan Index MySQL akan lebih cepat mencari yg dengan instant akan menemukan data yg dicari dibandingkan tanpa menggunakan index karena proses pencariannya akan dilakukan per record data. Tambahkan index pada kolom yg penting bukan berarti di setiap kolom diberikan index karena akan menurunkan performance database ketika melakukan INSERT atau UPDATE.
10. Tidak membuat back up Kejadian Database yg rusak atau penyedia layanan Web Hosting bisa saja bangkrut mungkin jarang sekali terjadi. Hilangnya data adalah suatu "mimpi buruk", jadi pastikan untuk selalu membuat backup data atau membuat replikasi data ke tempat lain.
|
