Perbedaan Tipe Data Varchar Dengan Char di MySQL

Tipe data char dan varchar kelihatannya sama, namun mereka memiliki  perbedaan yaitu cara penyimpanan (store) dan cara pemanggilannya (retrieve) kembali.

Tipe data char adalah tipe data karakter yang panjangnya tetap (fixed-length). Ini artinya MySQL akan mengalokasikan memori pada media penyimpanan untuk menyimpan tipe data ini sebesar ukuran maksimum yang kita minta. Contohnya deklarasi char(5) artinya MySQL akan otomatis melakukan alokasi ukuran sebesar lima character pada media penyimpanan walaupun kita hanya mengisi data sebanyak tiga karakter misalnya.Tipe data varchar adalah tipe data karakter yang panjangnya tidak tetap (variable-length). Ini berarti MySQL akan mengalokasikan memori pada media penyimpanan hanya sebesar atau sepanjang ukuran data aktual yang diisikan. Contohnya pada saat kita mendeklarasikan varchar(5) dan pada field tersebut kita isi 3 karakter maka pada media penyimpanan hanya akan dialokasikan 3 karakter saja.

Dari sini kita bisa menentukan kapan harus menggunakan tipe data char atau varchar. Tipe data char digunakan pada field atau data yang sifat panjangnya tetap, misalnya seperti kode barang, kode item, kode customer dan lain lain yang panjangnya tetap. Sebaliknya Anda bisa menggunakan varchar untuk data atau field yang sifat panjangnya tidak tetap misalnya nama, alamat, kota, deskripsi dan lain sebagainya. Jadi pilihlah tipe data yang tepat pada saat Anda membuat field-field pada database Anda.

Dalam hal pemanggilan char lebih cepat daripada varchar.

Berikut ini contoh perbedaan char dan varchar.

Value CHAR(4) Storage Required VARCHAR(4) Storage Required
'' '    ' 4 bytes '' 1 byte
'ab' 'ab  ' 4 bytes 'ab' 3 bytes
'abcd' 'abcd' 4 bytes 'abcd' 5 bytes
'abcdefgh' 'abcd' 4 bytes 'abcd' 5 bytes

Ringkasnya begini :

  • CHAR (M) adalah Data string dengan panjang yang tetap. CHAR(1) cukup ditulis dengan CHAR berukuran ukuran M byte, 1<=M<=255. Atribut yang di pakai adalah binary dengan harga default null jika bisa atau   “ ”  jika not null.
  •  VARCHAR(M) adalah. Data string dengan panjang bervariasi tergantung datanya. Berkuran L+1 byte dengan L<=M dan M bisa lebih dari  255. Atribut yang di pakai adalah binary dengan harga default null jika bisa atau   “ ”  jika not null. Dalam MySQL 5.0, kisaran M adalah 0 sampai 255 sebelum MySQL 5.0.3, dan 0 sampai 65.535 di MySQL 5.0.3 dan selanjutnya. Panjang maksimum efektif dari VARCHAR di MySQL 5.0.3 dan kemudian tunduk pada ukuran baris maksimum (65.535 byte, yang dibagi di antara semua kolom) dan set karakter yang digunakan. Sebagai contoh, karakter utf8 dapat membutuhkan sampai tiga byte per karakter, sehingga kolom varchar yang menggunakan set karakter utf8 dapat dinyatakan sebagai maksimal 21.844 karakter.

5 thoughts on “Perbedaan Tipe Data Varchar Dengan Char di MySQL

    • Saya sis mas😀,
      Utk PK kalo panjang digit nya tetap, saya sarankan pake CHAR. Kalo misalnya panjang digit max 10, dan sebagian besar PK terdiri dari lebih 5 digit, ya mending pake CHAR juga. Menggunakan CHAR bisa meringankan beban pikiran engine😀 .
      Tapi utk PK, tidak disarankan memakai CHAR/VARCHAR, paling efisien pake INT. Untuk join, sorting, searching, lebih cepat jika PK nya INT.
      CMIIW🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s