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

utf-8 gegen latin1

UTF8-Vorteile:

  1. Unterstützt die meisten Sprachen, einschließlich RTL-Sprachen wie Hebräisch.

  2. Beim Importieren/Exportieren von Daten in UTF8-kompatible Komponenten (JavaScript, Java usw.) ist keine Übersetzung erforderlich.

UTF8-Nachteile:

  1. Nicht-ASCII-Zeichen benötigen aufgrund ihres komplexeren Codierungsschemas mehr Zeit zum Codieren und Decodieren.

  2. Nicht-ASCII-Zeichen benötigen mehr Platz, da sie möglicherweise mit mehr als 1 Byte gespeichert werden (Zeichen, die nicht zu den ersten 127 Zeichen des ASCII-Zeichensatzes gehören). Ein CHAR(10) oder VARCHAR(10) -Feld kann bis zu 30 Byte benötigen, um einige UTF8-Zeichen zu speichern.

  3. Andere Sortierungen als utf8_bin wird langsamer sein, da die Sortierreihenfolge nicht direkt der Zeichencodierungsreihenfolge zugeordnet wird) und erfordert eine Übersetzung in einigen gespeicherten Prozeduren (als Variablen standardmäßig auf utf8_general_ci Sortierung).

  4. Wenn Sie JOIN müssen UTF8- und Nicht-UTF8-Feldern wird MySQL ein SEVERE auferlegen Leistungstreffer. Was Abfragen in Sekundenbruchteilen wären, könnte möglicherweise Minuten dauern wenn die verbundenen Felder unterschiedliche Zeichensätze/Sortierungen sind.

Fazit:

Wenn Sie keine Nicht-Latin1-Sprachen unterstützen müssen, maximale Leistung erzielen möchten oder bereits Tabellen haben, die latin1 verwenden , wählen Sie latin1 .

Andernfalls wählen Sie UTF8 .