sql >> Database >  >> RDS >> Mysql

utf-8 versus latin1

UTF8-voordelen:

  1. Ondersteunt de meeste talen, inclusief RTL-talen zoals Hebreeuws.

  2. Geen vertaling nodig bij het importeren/exporteren van gegevens naar UTF8-bewuste componenten (JavaScript, Java, enz.).

Nadelen van UTF8:

  1. Niet-ASCII-tekens hebben meer tijd nodig om te coderen en te decoderen, vanwege hun complexere coderingsschema.

  2. Niet-ASCII-tekens nemen meer ruimte in beslag omdat ze kunnen worden opgeslagen met meer dan 1 byte (tekens die niet in de eerste 127 tekens van de ASCII-tekenset voorkomen). Een CHAR(10) of VARCHAR(10) veld kan tot 30 bytes nodig hebben om enkele UTF8-tekens op te slaan.

  3. Andere sorteringen dan utf8_bin zal langzamer zijn omdat de sorteervolgorde niet direct overeenkomt met de tekencoderingsvolgorde), en in sommige opgeslagen procedures moet worden vertaald (als variabelen standaard utf8_general_ci sortering).

  4. Als je moet JOIN UTF8- en niet-UTF8-velden, MySQL zal een ERIN opleggen prestatie hit. Wat een zoekopdracht van minder dan een seconde zou zijn, kan mogelijk minuten duren als de samengevoegde velden verschillende tekensets/sorteringen zijn.

Kort gezegd:

Als u geen niet-Latin1-talen hoeft te ondersteunen, maximale prestaties wilt bereiken of al tabellen hebt die latin1 gebruiken , kies latin1 .

Kies anders UTF8 .



  1. mysql2 gem kan niet compileren met MySQL 5.6.12 op OS X met Homebrew

  2. ORDER BY en GROUP BY samen gebruiken

  3. Hoe repareert deze website de codering?

  4. MySQL-trigger voor het controleren van waarden voordat meerdere keren wordt ingevoegd