sql >> Databáze >  >> RDS >> Mysql

utf-8 vs latin1

Výhody UTF8:

  1. Podporuje většinu jazyků, včetně jazyků RTL, jako je hebrejština.

  2. Při importu/exportu dat do komponent podporujících UTF8 (JavaScript, Java atd.) není potřeba žádný překlad.

Nevýhody UTF8:

  1. 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í.

  2. 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) nebo VARCHAR(10) pole může potřebovat až 30 bajtů k uložení některých znaků UTF8.

  3. 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í).

  4. 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 .



  1. Mám pole celých čísel, jak mohu každé z nich použít v dotazu mysql (v php)?

  2. Jak mohu importovat velký (14 GB) soubor výpisu MySQL do nové databáze MySQL?

  3. Laravel 5.1 - Kontrola připojení k databázi

  4. překlad mongodb pro sql INSERT...SELECT