Výhody UTF8:
-
Podporuje většinu jazyků, včetně jazyků RTL, jako je hebrejština.
-
Při importu/exportu dat do komponent podporujících UTF8 (JavaScript, Java atd.) není potřeba žádný překlad.
Nevýhody UTF8:
-
Znaky, které nejsou ASCII, zaberou kódování a dekódování více času kvůli jejich složitějšímu schématu kódování.
-
Znaky jiné než ASCII zaberou více místa, protože mohou být uloženy s použitím více než 1 bajtu (znaky mimo prvních 127 znaků sady znaků ASCII). A
CHAR(10)
neboVARCHAR(10)
pole může potřebovat až 30 bajtů k uložení některých znaků UTF8. -
Jiná řazení než
utf8_bin
bude pomalejší, protože pořadí řazení se nebude přímo mapovat na pořadí kódování znaků, a bude vyžadovat překlad v některých uložených procedurách (jako výchozí proměnnéutf8_general_ci
řazení). -
Pokud se potřebujete
JOIN
Pole UTF8 a non-UTF8, MySQL uloží VÁŽNÉ výkonnostní hit. To, co by bylo méně než sekundové dotazy, může potenciálně trvat minuty pokud jsou spojená pole různé znakové sady/kombinace.
Sečteno a podtrženo:
Pokud nepotřebujete podporovat jiné jazyky než Latin1, chcete dosáhnout maximálního výkonu nebo již máte tabulky používající latin1
, zvolte latin1
.
V opačném případě zvolte UTF8
.