phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

Warum ist die Tabelle CHARSET auf utf8mb4 und COLLATION auf utf8mb4_unicode_520_ci gesetzt

Früher gab es nur utf8; in Zukunft utf8mb4 wird der Standardzeichensatz sein. jetzt 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 .