2 Stimmen

Was ist der Unterschied zwischen utf8_general_ci und utf8_unicode_ci in MySQL?

Seit einiger Zeit benutze ich phpMyAdmin, um meine lokalen MySQL-Datenbanken zu verwalten. Etwas, was ich langsam beherrsche, sind die richtigen Zeichensätze für meine Datenbank. Ich habe mich für UTF-8 entschieden, weil es die beste Kompatibilität bietet (da meine XHTML-Vorlagen als UTF-8 übertragen werden), aber eine Sache, die mich verwirrt, sind die verschiedenen Optionen für UTF-8, die mir in der phpMyAdmin-Oberfläche präsentiert werden?

Die beiden, die ich isoliert habe, sind:

  • utf8_general_ci
  • utf8_unicode_ci

Also meine Frage ist: Was ist der Unterschied zwischen den general und unicode Varianten von utf8 in MySQL? (Ich habe gelernt, dass ci eine Abkürzung für "case-insensitive" ist)

Jede Hilfe in diesem Angelegenheit wäre sehr dankbar.

2voto

Gumbo Punkte 617646

Aus dem MySQL-Handbuch zu Unicode-Zeichensätzen:

Für jeden Unicode-Zeichensatz sind Operationen, die mit der Kollation _general_ci durchgeführt werden, schneller als die für die Kollation _unicode_ci. Zum Beispiel sind Vergleiche für die Kollation 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 als gleich zu Kombinationen anderer Zeichen verglichen wird. Zum Beispiel ist im Deutschen und in einigen anderen Sprachen "ß" gleich "ss". utf8_unicode_ci unterstützt auch Kontraktionen und ignorierbare Zeichen. utf8_general_ci ist eine veraltete Kollation, die keine Erweiterungen, Kontraktionen oder ignorierbaren Zeichen unterstützt. Sie kann nur Eins-zu-Eins-Vergleiche zwischen Zeichen durchführen.

Weitere Informationen und Beispiele finden Sie auf der verlinkten Seite unter weiteren Informationen und Beispielen.

-2voto

Assaf Lavie Punkte 67504

Das #@%!ing Handbuch behandelt dies... :)

Eines der Probleme ist die Geschwindigkeit und Genauigkeit bestimmter Operationen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X