sql >> Base de Datos >  >> RDS >> Mysql

utf-8 frente a latin1

Ventajas de UTF8:

  1. Admite la mayoría de los idiomas, incluidos los idiomas RTL como el hebreo.

  2. No se necesita traducción al importar/exportar datos a componentes compatibles con UTF8 (JavaScript, Java, etc.).

Desventajas de UTF8:

  1. Los caracteres que no son ASCII tardarán más en codificarse y decodificarse debido a su esquema de codificación más complejo.

  2. Los caracteres que no son ASCII ocuparán más espacio, ya que pueden almacenarse usando más de 1 byte (caracteres que no están en los primeros 127 caracteres del conjunto de caracteres ASCII). Un CHAR(10) o VARCHAR(10) el campo puede necesitar hasta 30 bytes para almacenar algunos caracteres UTF8.

  3. Intercalaciones que no sean utf8_bin será más lento ya que el orden de clasificación no se asignará directamente al orden de codificación de caracteres) y requerirá traducción en algunos procedimientos almacenados (ya que las variables predeterminadas son utf8_general_ci colación).

  4. Si necesita JOIN campos UTF8 y no UTF8, MySQL impondrá un SEVERO golpe de rendimiento Lo que serían consultas de menos de un segundo podrían llevar potencialmente minutos si los campos unidos son conjuntos de caracteres/intercalaciones diferentes.

Conclusión:

Si no necesita admitir idiomas que no sean Latin1, desea lograr el máximo rendimiento o ya tiene tablas que usan latin1 , elige latin1 .

De lo contrario, elija UTF8 .