Avantages UTF8 :
-
Prend en charge la plupart des langues, y compris les langues RTL telles que l'hébreu.
-
Aucune traduction nécessaire lors de l'importation/exportation de données vers des composants compatibles UTF8 (JavaScript, Java, etc.).
Inconvénients UTF8 :
-
Les caractères non-ASCII prendront plus de temps à encoder et à décoder, en raison de leur schéma d'encodage plus complexe.
-
Les caractères non-ASCII prendront plus d'espace car ils peuvent être stockés sur plus d'un octet (caractères ne figurant pas dans les 127 premiers caractères du jeu de caractères ASCII). Un
CHAR(10)
ouVARCHAR(10)
peut nécessiter jusqu'à 30 octets pour stocker certains caractères UTF8. -
Classements autres que
utf8_bin
sera plus lent car l'ordre de tri ne correspondra pas directement à l'ordre d'encodage des caractères), et nécessitera une traduction dans certaines procédures stockées (en tant que variables par défaut surutf8_general_ci
classement). -
Si vous avez besoin de
JOIN
Champs UTF8 et non-UTF8, MySQL imposera un SEVERE coup de performance. Quelles seraient les requêtes inférieures à la seconde qui pourraient potentiellement prendre minutes si les champs joints sont des jeux de caractères/collations différents.
Conclusion :
Si vous n'avez pas besoin de prendre en charge des langues autres que Latin1, souhaitez obtenir des performances maximales ou avez déjà des tables utilisant latin1
, choisissez latin1
.
Sinon, choisissez UTF8
.