Mysql
 sql >> Base de données >  >> RDS >> Mysql

utf8_bin contre utf_unicode_ci

Cela dépend de ce dont vous avez besoin.

Le utf8_bin le classement compare les chaînes en fonction uniquement de leur point de code Unicode valeurs. Si tous les points de code ont les mêmes valeurs, les chaînes sont égales. Cependant, cela s'effondre lorsque vous avez des chaînes avec une composition différente pour combiner des marques (composées ou décomposées) ou des caractères qui sont canoniquement équivalents mais qui n'ont pas la même valeur de point de code. Dans certains cas, en utilisant utf8_bin entraînera des chaînes qui ne correspondent pas lorsque vous vous y attendez. Théoriquement, utf8_bin est le plus rapide car aucune normalisation Unicode n'est appliquée aux chaînes, mais ce n'est peut-être pas ce que vous voulez.

utf8_general_ci applique la normalisation Unicode à l'aide de règles spécifiques au langage et compare les chaînes sans tenir compte de la casse. utf8_general_cs fait la même chose, mais compare les chaînes en respectant la casse.