Tidak ada perbedaan.
Namun, ada peringatan jika Anda menyimpan string.
Jika Anda hanya ingin menyimpan array byte atau data biner lainnya seperti aliran atau file, gunakan tipe biner karena memang itulah yang dimaksudkan.
Kutipan dari manual MySQL :
Jadi, secara teknis tidak ada perbedaan.
Namun, saat menyimpan string, string harus dikonversi dari string ke nilai byte menggunakan set karakter. Keputusannya adalah melakukan ini sendiri sebelum server MySQL atau Anda menyerahkannya kepada MySQL yang melakukannya untuk Anda. MySQL akan tampil dengan dengan melemparkan string ke BINARY
menggunakan set karakter BIN.
Jika Anda ingin menyimpan pengkodean dalam format lain, katakanlah Anda memiliki persyaratan bisnis yang mengatakan Anda harus menggunakan 4 byte per karakter (MySQL tidak melakukan ini secara default), Anda kemudian dapat menggunakan CHARACTER SET BINARY
ke kolom tekstual dan lakukan pengkodean set karakter sendiri.
Penting juga untuk membaca The BINARY
dan VARBINARY
Jenis
dari manual MySQL karena ini merinci informasi penting seperti padding.
Ringkasan: Tidak ada perbedaan teknis karena yang satu sinonim dengan yang lain. Menurut pendapat saya masuk akal untuk menyimpan string biner dalam tipe data yang biasanya menyimpan string menggunakan CHARACTER SET BINARY
dan untuk menyimpan byte array / stream dll di BINARY
bidang yang tidak dapat direpresentasikan dengan mengubah data melalui kumpulan karakter.