Mysql
 sql >> Datenbank >  >> RDS >> Mysql

utf8_bin vs. utf_unicode_ci

Es hängt davon ab, was Sie brauchen.

Der utf8_bin Collation vergleicht Zeichenfolgen ausschließlich auf der Grundlage ihres Unicode-Codepunkts Werte. Wenn alle Codepunkte dieselben Werte haben, sind die Zeichenfolgen gleich. Dies fällt jedoch auseinander, wenn Sie Zeichenfolgen mit unterschiedlicher Zusammensetzung zum Kombinieren von Markierungen (zusammengesetzt vs. zerlegt) oder Zeichen haben, die kanonisch äquivalent sind, aber nicht denselben Codepunktwert haben. In einigen Fällen mit utf8_bin führt dazu, dass Zeichenfolgen nicht übereinstimmen, wenn Sie dies erwarten. Theoretisch utf8_bin ist am schnellsten, da keine Unicode-Normalisierung auf die Zeichenfolgen angewendet wird, aber es ist möglicherweise nicht das, was Sie möchten.

utf8_general_ci wendet die Unicode-Normalisierung unter Verwendung sprachspezifischer Regeln an und vergleicht Zeichenfolgen ohne Berücksichtigung der Groß-/Kleinschreibung. utf8_general_cs macht dasselbe, vergleicht aber Strings unter Berücksichtigung der Groß-/Kleinschreibung.