Het belangrijkste verschil is de sorteernauwkeurigheid (bij het vergelijken van tekens in de taal) en prestaties. De enige speciale is utf8_bin, dat is voor het vergelijken van tekens in binair formaat.
utf8_general_ci
is iets sneller dan utf8_unicode_ci
, maar minder nauwkeurig (om te sorteren). De specifieke taal utf8-codering (zoals utf8_swedish_ci
) bevatten aanvullende taalregels waardoor ze het meest nauwkeurig kunnen worden gesorteerd voor die talen. Meestal gebruik ik utf8_unicode_ci
(Ik geef de voorkeur aan nauwkeurigheid boven kleine prestatieverbeteringen), tenzij ik een goede reden heb om een specifieke taal te prefereren.
U kunt meer lezen over specifieke unicode-tekensets in de MySQL-handleiding - http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html