Tidigare fanns det bara utf8
; i framtiden, nu utf8mb4
kommer att vara standardteckenuppsättningen.utf8mb4
är standardteckenuppsättningen.
Tidigare _general_ci
var standardsorteringen; sedan _unicode_ci
(Unicode 4.0) var bättre än _unicode_520_ci
(Unicode 5.20). I framtiden (MySQL 8.0) kommer standarden att vara _0900_ci_ai
(Unicode 9.0).
Samtidigt är vägen full av gropar som skapats av MySQL:s tidigare misstag. Och WP-designers kör i en stor tank som inte märker gropen.
MySQL 5.6 var ett stort hål som svalde många WP-användare på grund av en gräns på 767 på index tillsammans med WP-index på den alltför långa VARCHAR(255)
och möjligheten att använda utf8mb4
. Du är långt över det genom att ha 5.7.17. (Din framtida övergång till 8.0 kommer att bli mindre ojämn.)
Det vill säga, nyskapade databaser/tabeller/kolumner på 5.7.7+ ska inte uppleva 767-problemet, men saker som migrerats från äldre versioner (5.5.3+) kan ha problem, särskilt om något får dig att ändra till utf8mb4.
Vad ska man göra? Jag kommer förmodligen få ont om utrymme när jag försöker stava ut alla alternativen. Så ange historiken för data, uppgraderingssökvägen (om någon), de aktuella inställningarna, ROW_FORMAT
av tabellerna, CHARACTER SET
och COLLATION
av kolumnerna, utdata från SHOW VARIABLES LIKE 'char%';
Var ska du vara? För 5.7.7+, utf8mb4
och utf8mb4_unicode_520_ci
varhelst det är praktiskt. Den teckenuppsättningen ger dig Emoji och hela kinesiska (utf8 gör det inte). Den sammanställningen är den bästa tillgängliga, även om du kan vara svårt att märka var det är viktigt.
Obs:den första delen av sorteringsnamnet är den enda teckenuppsättning som den fungerar med. Det är utf8_unicode_ci
fungerar inte med utf8mb4
.