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

UTF-8:Allgemein? Behälter? Unicode?

Im Allgemeinen utf8_general_ci ist schneller als utf8_unicode_ci , aber weniger korrekt.

Hier ist der Unterschied:

Für jeden Unicode-Zeichensatz sind Operationen, die mit der _general_ci-Kollatierung ausgeführt werden, schneller als die für die _unicode_ci-Kollatierung . Beispielsweise sind Vergleiche für die Sortierung utf8_general_ci schneller, aber etwas weniger korrekt als Vergleiche für utf8_unicode_ci. Der Grund dafür ist, dass utf8_unicode_ci Zuordnungen wie Erweiterungen unterstützt; das heißt, wenn ein Zeichen im Vergleich zu Kombinationen anderer Zeichen gleich ist. Zum Beispiel ist „ß“ im Deutschen und einigen anderen Sprachen gleich „ss“. utf8_unicode_ci unterstützt auch Kontraktionen und ignorierbare Zeichen. utf8_general_ci ist eine Legacy-Sortierung, die Erweiterungen, Kontraktionen oder ignorierbare Zeichen nicht unterstützt. Es kann nur Eins-zu-Eins-Vergleiche zwischen Zeichen durchführen.

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

Für eine detailliertere Erklärung lesen Sie bitte den folgenden Beitrag aus den MySQL-Foren:http:/ /forums.mysql.com/read.php?103,187048,188748

Wie für utf8_bin:Beides utf8_general_ci und utf8_unicode_ci einen Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung durchführen. Im Gegensatz dazu wird bei utf8_bin zwischen Groß- und Kleinschreibung unterschieden (neben anderen Unterschieden), weil es die Binärwerte der Zeichen vergleicht.