UTF8 Fordele:
-
Understøtter de fleste sprog, inklusive RTL-sprog såsom hebraisk.
-
Ingen oversættelse nødvendig ved import/eksport af data til UTF8-bevidste komponenter (JavaScript, Java osv.).
UTF8 Ulemper:
-
Ikke-ASCII-tegn vil tage længere tid at kode og afkode på grund af deres mere komplekse indkodningsskema.
-
Ikke-ASCII-tegn vil tage mere plads, da de kan lagres med mere end 1 byte (tegn ikke i de første 127 tegn i ASCII-tegnsættet). En
CHAR(10)
ellerVARCHAR(10)
felt kan have brug for op til 30 bytes for at gemme nogle UTF8-tegn. -
Andre sorter end
utf8_bin
vil være langsommere, da sorteringsrækkefølgen ikke direkte vil blive knyttet til tegnkodningsrækkefølgen), og vil kræve oversættelse i nogle lagrede procedurer (da variabler som standard erutf8_general_ci
sortering). -
Hvis du har brug for at
JOIN
UTF8 og ikke-UTF8 felter, vil MySQL pålægge en SVERE præstationshit. Hvad der ville være sub-sekund-forespørgsler, kan potentielt tage minutter hvis de sammenføjede felter er forskellige tegnsæt/sammenstillinger.
Nederste linje:
Hvis du ikke har brug for at understøtte ikke-Latin1-sprog, ønsker at opnå maksimal ydeevne eller allerede har tabeller med latin1
, vælg latin1
.
Ellers skal du vælge UTF8
.