UTF8-Vorteile:
-
Unterstützt die meisten Sprachen, einschließlich RTL-Sprachen wie Hebräisch.
-
Beim Importieren/Exportieren von Daten in UTF8-kompatible Komponenten (JavaScript, Java usw.) ist keine Übersetzung erforderlich.
UTF8-Nachteile:
-
Nicht-ASCII-Zeichen benötigen aufgrund ihres komplexeren Codierungsschemas mehr Zeit zum Codieren und Decodieren.
-
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)
oderVARCHAR(10)
-Feld kann bis zu 30 Byte benötigen, um einige UTF8-Zeichen zu speichern. -
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 aufutf8_general_ci
Sortierung). -
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
.