Itu tergantung pada apa yang Anda butuhkan.
utf8_bin
collation membandingkan string murni berdasarkan titik kode
Unicode mereka nilai-nilai. Jika semua titik kode memiliki nilai yang sama, maka stringnya sama. Namun, ini berantakan ketika Anda memiliki string dengan komposisi berbeda untuk menggabungkan tanda (tersusun vs. terurai) atau karakter yang setara secara kanonik tetapi tidak memiliki nilai poin kode yang sama. Dalam beberapa kasus, menggunakan utf8_bin
akan menghasilkan string yang tidak cocok dengan yang Anda harapkan. Secara teoritis, utf8_bin
adalah yang tercepat karena tidak ada normalisasi Unicode yang diterapkan pada string, tetapi mungkin bukan itu yang Anda inginkan.
utf8_general_ci
menerapkan normalisasi Unicode menggunakan aturan khusus bahasa dan membandingkan string dengan tidak peka huruf besar/kecil. utf8_general_cs
melakukan hal yang sama, tetapi membandingkan string dengan peka huruf besar-kecil.