Hlavním rozdílem je přesnost řazení (při porovnávání znaků v jazyce) a výkon. Jediný speciální je utf8_bin, který slouží k porovnávání znaků v binárním formátu.
utf8_general_ci
je poněkud rychlejší než utf8_unicode_ci
, ale méně přesné (pro řazení). kódování utf8 konkrétního jazyka (například utf8_swedish_ci
) obsahují další jazyková pravidla, díky nimž jsou pro tyto jazyky nejpřesnější k řazení. Většinu času používám utf8_unicode_ci
(Dávám přednost přesnosti před malými vylepšeními výkonu), pokud nemám dobrý důvod preferovat konkrétní jazyk.
Více o konkrétních znakových sadách unicode si můžete přečíst v příručce MySQL - http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html