Den största skillnaden är sorteringsnoggrannhet (när man jämför tecken i språket) och prestanda. Den enda speciella är utf8_bin som är till för att jämföra tecken i binärt format.
utf8_general_ci
är något snabbare än utf8_unicode_ci
, men mindre exakt (för sortering). Den specifika språkutf8-kodningen (som utf8_swedish_ci
) innehåller ytterligare språkregler som gör dem mest exakta att sortera för dessa språk. För det mesta använder jag utf8_unicode_ci
(Jag föredrar noggrannhet framför små prestandaförbättringar), såvida jag inte har en god anledning att föredra ett specifikt språk.
Du kan läsa mer om specifika unicode-teckenuppsättningar i MySQL-manualen - http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html