I allmänhet utf8_general_ci är snabbare än utf8_unicode_ci , men mindre korrekt.
Här är skillnaden:
För alla Unicode-teckenuppsättningar är operationer som utförs med _general_ci-sorteringen snabbare än de för _unicode_ci-sorteringen . Till exempel är jämförelser för utf8_general_ci-kollationen snabbare, men något mindre korrekta, än jämförelser för utf8_unicode_ci. Anledningen till detta är att utf8_unicode_ci stöder mappningar såsom expansioner; det vill säga när ett tecken jämförs med kombinationer av andra tecken. Till exempel på tyska och vissa andra språk är "ß" lika med "ss". utf8_unicode_ci stöder också sammandragningar och ignorerbara tecken. utf8_general_ci är en äldre sortering som inte stöder expansioner, sammandragningar eller ignorerbara tecken. Den kan endast göra en-till-en-jämförelser mellan karaktärer.
Citerat från:http://dev.mysql. com/doc/refman/5.0/en/charset-unicode-sets.html
För mer detaljerad förklaring, läs följande inlägg från MySQL-forum:http:/ /forums.mysql.com/read.php?103,187048,188748
När det gäller utf8_bin:Båda utf8_general_ci och utf8_unicode_ci göra jämförelser som inte är skiftlägeskänsliga. I motsats är utf8_bin skiftlägeskänslig (bland andra skillnader), eftersom den jämför de binära värdena för tecknen.