Secara umum, utf8_general_ci lebih cepat dari utf8_unicode_ci , tapi kurang tepat.
Inilah perbedaannya:
Untuk kumpulan karakter Unicode apa pun, operasi yang dilakukan menggunakan susunan _general_ci lebih cepat daripada operasi untuk susunan _unicode_ci . Misalnya, perbandingan untuk susunan utf8_general_ci lebih cepat, tetapi sedikit kurang benar, daripada perbandingan untuk utf8_unicode_ci. Alasan untuk ini adalah bahwa utf8_unicode_ci mendukung pemetaan seperti ekspansi; yaitu, ketika satu karakter dibandingkan dengan kombinasi karakter lainnya. Misalnya, dalam bahasa Jerman dan beberapa bahasa lain "ß" sama dengan "ss". utf8_unicode_ci juga mendukung kontraksi dan karakter yang dapat diabaikan. utf8_general_ci adalah kumpulan warisan yang tidak mendukung ekspansi, kontraksi, atau karakter yang dapat diabaikan. Itu hanya dapat membuat perbandingan satu-ke-satu antara karakter.
Dikutip dari:http://dev.mysql. com/doc/refman/5.0/en/charset-unicode-sets.html
Untuk penjelasan lebih rinci, silakan baca posting berikut dari forum MySQL:http:// /forums.mysql.com/read.php?103,187048,188748
Adapun utf8_bin:Keduanya utf8_general_ci dan utf8_unicode_ci melakukan perbandingan case-insensitive. Sebaliknya, utf8_bin peka huruf besar/kecil (di antara perbedaan lainnya), karena membandingkan nilai biner dari karakter.