En général, utf8_general_ci est plus rapide que utf8_unicode_ci, mais moins corrects.
Voici la différence:
Pour n'importe quel jeu de caractères Unicode, les opérations effectuées à l'aide de la _general_ci classement sont plus rapides que ceux de la _unicode_ci classement. Par exemple, des comparaisons pour l'interclassement utf8_general_ci sont plus rapides, mais légèrement moins corrects, que les comparaisons pour utf8_unicode_ci. La raison pour cela est que utf8_unicode_ci prend en charge les mappages, comme l'expansion; c'est, quand un personnage se compare comme l'égalité des combinaisons des autres personnages. Par exemple, en allemand et en quelques autres langues "ß" est égal à "ss". utf8_unicode_ci prend également en charge les contractions et ignorable caractères. utf8_general_ci est un héritage de classement ne prend pas en charge les expansions, les contractions, ou ignorable caractères. Il ne peut faire qu'une comparaison directe entre les personnages.
Cité:
http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html
Pour des explications plus détaillées, veuillez lire le post suivant de MySQL forums:
http://forums.mysql.com/read.php?103,187048,188748
Comme pour utf8_bin:
Les deux utf8_general_ci et utf8_unicode_ci effectuer la comparaison sensible à la casse. En contraste, utf8_bin est sensible à la casse (parmi d'autres différences), parce qu'il compare les valeurs binaires des personnages.