Mysql
 sql >> Baza danych >  >> RDS >> Mysql

utf-8 vs latin1

Zalety UTF8:

  1. Obsługuje większość języków, w tym języki RTL, takie jak hebrajski.

  2. Brak konieczności tłumaczenia podczas importowania/eksportowania danych do komponentów obsługujących UTF8 (JavaScript, Java itp.).

Wady UTF8:

  1. Kodowanie i dekodowanie znaków innych niż ASCII zajmie więcej czasu ze względu na ich bardziej złożony schemat kodowania.

  2. Znaki inne niż ASCII zajmą więcej miejsca, ponieważ mogą być przechowywane przy użyciu więcej niż 1 bajtu (znaki nie znajdujące się w pierwszych 127 znakach zestawu znaków ASCII). CHAR(10) lub VARCHAR(10) pole może potrzebować do 30 bajtów do przechowywania niektórych znaków UTF8.

  3. Zestawienia inne niż utf8_bin będzie wolniejsze, ponieważ porządek sortowania nie będzie bezpośrednio mapowany na porządek kodowania znaków) i będzie wymagał translacji w niektórych procedurach składowanych (jako że zmienne domyślnie to utf8_general_ci zestawienie).

  4. Jeśli potrzebujesz JOIN Pola UTF8 i inne niż UTF8, MySQL nałoży POWAŻNE hit wydajności. Zapytania podsekundowe mogą potencjalnie zająć minuty jeśli połączone pola są różnymi zestawami znaków/porównaniami.

Konkluzja:

Jeśli nie potrzebujesz obsługiwać języków innych niż Latin1, chcesz osiągnąć maksymalną wydajność lub masz już tabele używające latin1 , wybierz latin1 .

W przeciwnym razie wybierz UTF8 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie z wieloma polubieniami

  2. Trafność wyszukiwania pełnotekstowego jest mierzona w?

  3. Grupuj według daty tylko w kolumnie Datetime

  4. Jak znaleźć unikalne pary z dwóch kolumn w SQL?

  5. Przejście z bazy danych do sesji