Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

UTF-8:Geral? Caixa? Unicode?


Em geral, utf8_general_ci é mais rápido que utf8_unicode_ci , mas menos correto.

Aqui está a diferença:

Para qualquer conjunto de caracteres Unicode, as operações realizadas usando o agrupamento _general_ci são mais rápidas do que as do agrupamento _unicode_ci . Por exemplo, as comparações para o agrupamento utf8_general_ci são mais rápidas, mas um pouco menos corretas, do que as comparações para utf8_unicode_ci. A razão para isso é que utf8_unicode_ci suporta mapeamentos como expansões; ou seja, quando um caractere é comparado como igual a combinações de outros caracteres. Por exemplo, em alemão e em alguns outros idiomas, “ß” é igual a “ss”. utf8_unicode_ci também suporta contrações e caracteres ignoráveis. utf8_general_ci é um agrupamento herdado que não oferece suporte a expansões, contrações ou caracteres ignoráveis. Ele pode fazer apenas comparações um-para-um entre os caracteres.

Citado em:http://dev.mysql. com/doc/refman/5.0/en/charset-unicode-sets.html

Para uma explicação mais detalhada, leia a seguinte postagem dos fóruns do MySQL:http:/ /forums.mysql.com/read.php?103,187048,188748

Quanto a utf8_bin:Ambos utf8_general_ci e utf8_unicode_ci realizar comparação que não diferencia maiúsculas de minúsculas. Em contraste, utf8_bin diferencia maiúsculas de minúsculas (entre outras diferenças), pois compara os valores binários dos caracteres.