Share

Mana yang lebih baik apakah mysql atau mysqli? kenapa? yang mana harus saya gunakan? Pertanyaan itu mungkin muncul saat ini karena dari segi source code kedua driver/ekstensi ini hampir sama.

MySQL adalah database relasional yang open source dan sangat populer digunakan bahkan untuk website dengan traffic yang sangat tinggi seperti wikipedia, twitter, facebook, dll. Versi original dari MySQL adalah biaya yang murah, mudah untuk digunakan dalam hal menginstall dan mengintegrasikan, fleksibel digunakan dalam berbagai flatform.

mysql

Dalam hubungannya dengan PHP, mysql adalah database driver yang sudah tua. Kebanyakan untuk orang yang baru pertama kali membuat website, pasti menggunakan ekstensi ini. Saya yakin masih banyak yang menggunakannya karena kemudahannya dalam membuat query.  Saya tidak akan membahas lebih dalam mengenai driver ini.

mysqli

Driver mysqli adalah pengembangan lebih lanjut dari driver mysql. Driver mysqli didesain lebih baik dan lebih interaktif dengan MySQL. Beberapa fitur baru dalam mysqli adalah sebagai berikut :

  • Mendukung Object-oriented dan Prosedural Interface.
  • Mendukung Prepared Statements, mysqli mampu melewati query tanpa data ke MySQL.
  • Mendukung Multiple Statements, kemampuan untuk mengirim beberapa statement untuk mengurangi jumlah interaksi client-server.
  • Mendukung Transactions,  dengan menggunakan transaction memungkinkan Anda untuk mengeksekusi query dengan tidak menyimpan efek yang ditimbulkan dalam database.
  • Kemampuan Enhanced debugging, Anda bisa memasukkan debugging query ke dalam sistem sehingga proses development menjadi lebih efisien.
  • Dukungan Embedded server, mysqli menawarkan hubungan dan memanipulasi library yang sudah ada dalam MySQL.

Mengapa mesti menggunakan mysqli?

Tim PHP merekomendasikan untuk menggunakan antara mysqli atau ekstensi  PDO_MySQL. Tidak disarankan untuk menggunakan driver mysql untuk pengembangan sistem yang baru. Kinerja keseluruhan dari ketiga driver/ekstensi ini (mysql, mysqli, PDO) nyaris sama. Meskipun kinerja dari driver/ekstensi hanya menyumbang sebagian kecil dari total waktu menjalankan permintaan dari query yang dieksekusi. Seringkali dampaknya sangat rendah, mungkin hanya 0,1%. Dalam tabel dibawah bisa dilihat perbedaan antara mysql dan mysqli.

Fitur mysqli mysql
Status Pengembangan aktif hanya pemeliharaan
Lifecycle aktif akan dihapuskan di masa datang
Direkomendasikan ya tidak
Object-oriented ya tidak
Asynchronous Queries ya tidak
Server-Side Prep. Statements ya tidak
Stored Procedures ya tidak
Multiple Statements ya tidak
Transactions ya tidak
Fungsionalitas untuk MySQL 5.1+ ya tidak

Seperti pembaruan perangkat lunak atau perbaikannya, ada pasti ada saja bug yang akan muncul pada masa yang akan mendatang. Memilih mysqli atau PDO atau mysql tergantung pada situasi dan preferensi dari pengguna. Untuk saat ini, mysqli adalah pilihan yang aman dan serbaguna untuk berinteraksi dengan database MySQL.