Früher gab es nur utf8
; in Zukunft jetzt utf8mb4
wird der Standardzeichensatz sein.utf8mb4
ist der Standardzeichensatz.
In der Vergangenheit _general_ci
war die Standardsortierung; dann _unicode_ci
(Unicode 4.0) war besser, dann _unicode_520_ci
(Unicode 5.20). In Zukunft (MySQL 8.0) wird der Standardwert _0900_ci_ai
sein (Unicode 9.0).
Inzwischen ist die Straße voller Schlaglöcher, die durch frühere Fehler von MySQL entstanden sind. Und WP-Designer fahren in einem großen Panzer, der die Schlaglöcher nicht bemerkt.
MySQL 5.6 war ein großes Schlagloch, das viele WP-Benutzer wegen einer 767-Grenze für Indizes zusammen mit WP-Indizes auf dem überlangen VARCHAR(255)
verschlungen hat und die Möglichkeit, utf8mb4
zu verwenden . Mit 5.7.17 sind Sie weit darüber hinaus. (Ihr zukünftiger Wechsel zu 8.0 wird weniger holprig sein.)
Das heißt, bei neu erstellten Datenbanken/Tabellen/Spalten auf 5.7.7+ sollte das 767-Problem nicht auftreten, aber Dinge, die von älteren Versionen (5.5.3+) migriert wurden, können Probleme haben, besonders wenn Sie aufgrund von etwas zu utf8mb4 wechseln müssen.
Was ist zu tun? Ich werde wahrscheinlich keinen Platz mehr haben, wenn ich versuche, alle Optionen zu buchstabieren. Geben Sie also den Verlauf der Daten, den Upgrade-Pfad (falls vorhanden), die aktuellen Einstellungen, das ROW_FORMAT
an der Tabellen, der CHARACTER SET
und COLLATION
der Spalten, die Ausgabe von SHOW VARIABLES LIKE 'char%';
Wo solltest du sein? Für 5.7.7+, utf8mb4
und utf8mb4_unicode_520_ci
wo immer praktisch. Dieser Zeichensatz gibt Ihnen Emoji und alles Chinesisch (utf8 nicht). Diese Sortierung ist die beste, die es gibt, auch wenn es Ihnen vielleicht schwerfallen wird zu bemerken, wo es darauf ankommt.
Hinweis:Der erste Teil des Sortierungsnamens ist der einzige Zeichensatz, mit dem es funktioniert. Das ist utf8_unicode_ci
funktioniert nicht mit utf8mb4
.