Vantagens do UTF8:
-
Suporta a maioria dos idiomas, incluindo idiomas RTL, como hebraico.
-
Nenhuma tradução necessária ao importar/exportar dados para componentes com reconhecimento de UTF8 (JavaScript, Java, etc).
Desvantagens do UTF8:
-
Caracteres não ASCII levarão mais tempo para codificar e decodificar, devido ao seu esquema de codificação mais complexo.
-
Caracteres não ASCII ocuparão mais espaço, pois podem ser armazenados usando mais de 1 byte (caracteres que não estão nos primeiros 127 caracteres do conjunto de caracteres ASCII). UmCHAR(10)
ouVARCHAR(10)
pode precisar de até 30 bytes para armazenar alguns caracteres UTF8.
-
Agrupamentos diferentes deutf8_bin
será mais lento, pois a ordem de classificação não será mapeada diretamente para a ordem de codificação de caracteres) e exigirá tradução em alguns procedimentos armazenados (como as variáveis padrão parautf8_general_ci
agrupamento).
-
Se você precisaJOIN
Campos UTF8 e não UTF8, o MySQL imporá um SEVERE golpe de desempenho. O que seriam consultas de menos de um segundo podem levar minutos se os campos unidos forem conjuntos/agrupamentos de caracteres diferentes.
Linha inferior:
Se você não precisa oferecer suporte a idiomas não latino1, deseja obter o máximo desempenho ou já possui tabelas usando
latin1
, escolha latin1
. Caso contrário, escolha
UTF8
.