sql >> Base de Datos >  >> RDS >> Mysql

UTF-8:¿General? ¿Compartimiento? Unicode?

En general, utf8_general_ci es más rápido que utf8_unicode_ci , pero menos correcto.

Aquí está la diferencia:

Para cualquier conjunto de caracteres Unicode, las operaciones realizadas con la intercalación _general_ci son más rápidas que las de la intercalación _unicode_ci . Por ejemplo, las comparaciones para la intercalación utf8_general_ci son más rápidas, pero un poco menos correctas, que las comparaciones para utf8_unicode_ci. La razón de esto es que utf8_unicode_ci admite asignaciones como expansiones; es decir, cuando un carácter se compara como igual a combinaciones de otros caracteres. Por ejemplo, en alemán y algunos otros idiomas “ß” es igual a “ss”. utf8_unicode_ci también admite contracciones y caracteres ignorables. utf8_general_ci es una intercalación heredada que no admite expansiones, contracciones ni caracteres ignorables. Solo puede hacer comparaciones uno a uno entre personajes.

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

Para obtener una explicación más detallada, lea la siguiente publicación de los foros de MySQL:http:/ /forums.mysql.com/read.php?103,187048,188748

En cuanto a utf8_bin:Ambos utf8_general_ci y utf8_unicode_ci realizar una comparación sin distinción entre mayúsculas y minúsculas. Por el contrario, utf8_bin distingue entre mayúsculas y minúsculas (entre otras diferencias), porque compara los valores binarios de los caracteres.