Der Hauptunterschied besteht in der Sortiergenauigkeit (beim Vergleichen von Zeichen in der Sprache) und der Leistung. Der einzige spezielle ist utf8_bin, der zum Vergleichen von Zeichen im Binärformat dient.
utf8_general_ci
ist etwas schneller als utf8_unicode_ci
, aber weniger genau (zum Sortieren). Die sprachspezifische utf8-Codierung (z. B. utf8_swedish_ci
) enthalten zusätzliche Sprachregeln, die sie für diese Sprachen am genauesten sortieren lassen. Meistens verwende ich utf8_unicode_ci
(Ich bevorzuge Genauigkeit gegenüber kleinen Leistungsverbesserungen), es sei denn, ich habe einen guten Grund, eine bestimmte Sprache zu bevorzugen.
Weitere Informationen zu bestimmten Unicode-Zeichensätzen finden Sie im MySQL-Handbuch - http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html