In passato esisteva solo utf8; in futuro, ora utf8mb4 sarà il set di caratteri predefinito.utf8mb4 è il set di caratteri predefinito.
In passato, _general_ci era la raccolta predefinita; quindi _unicode_ci (Unicode 4.0) era migliore, quindi _unicode_520_ci (Unicode 5.20). In futuro (MySQL 8.0), l'impostazione predefinita sarà _0900_ci_ai (Unicode 9.0).
Nel frattempo, la strada è piena di buche generate dagli errori passati di MySQL. E i designer di WP stanno guidando in un grande serbatoio che non si accorge delle buche.
MySQL 5.6 è stata una grande buca che ha inghiottito molti utenti di WP a causa di un limite di 767 indici insieme agli indici WP sul VARCHAR(255) eccessivamente lungo e la possibilità di utilizzare utf8mb4 . Sei ben oltre avendo 5.7.17. (Il tuo passaggio futuro all'8.0 sarà meno accidentato.)
Cioè, i database/tabelle/colonne appena creati su 5.7.7+ non dovrebbero presentare il problema 767, ma le cose migrate da versioni precedenti (5.5.3+) potrebbero avere problemi, specialmente se qualcosa ti fa passare a utf8mb4.
Cosa fare? Probabilmente esaurirò lo spazio cercando di precisare tutte le opzioni. Quindi fornisci la cronologia dei dati, il percorso di aggiornamento (se presente), le impostazioni correnti, il ROW_FORMAT delle tabelle, il CHARACTER SET e COLLATION delle colonne, l'output di SHOW VARIABLES LIKE 'char%';
Dove dovresti essere? Per 5.7.7+, utf8mb4 e utf8mb4_unicode_520_ci ovunque pratico. Quel set di caratteri ti dà Emoji e tutto il cinese (utf8 no). Quella raccolta è la migliore disponibile, anche se potrebbe essere difficile notare dove conta.
Nota:la prima parte del nome di confronto è l'unico set di caratteri con cui funziona. Questo è utf8_unicode_ci non funziona con utf8mb4 .