Différences entre MySQL Collation utf8_unicode

10

Mais j'ai lu sur l'importance de MySQL Collation et ce que j'ai appris jusqu'à présent concernant la compatibilité et la précision est que ces 4 semblent être mon meilleur pari.

  • utf8_unicode_ci
  • utf8_unicode_520_ci
  • utf8mb4_unicode_ci
  • utf8mb4_unicode_520_ci

D'après ma compréhension, uft8mb4 serait bon pour le caractère avec le support de la langue mutli (caractère) (japonais par exemple). uf8 ne prend en charge que 3 octets tandis que uf8mb4 prend en charge 4 octets. Il semble donc que le choix évident serait uf8mb4, mais le hic semble être que vous avez une limite de longueur (Merde! Je veux mon gâteau et mange aussi), ce qui est un peu inquiétant (je pense).

Ensuite, vous prenez en compte la norme 520; qui offre plus, d'après le peu que j'ai pu y trouver. Mais c'est bien sûr la question, je pourrais en trouver très peu. Seulement que les gens disent que c'est une amélioration, tout en étant très vague sur la façon dont c'est.

Je veux le plus possible avec le moins de restrictions possible ... Je me suis dit que quelqu'un ici pourrait savoir une chose ou deux. Le site officiel de MySQL n'était pas aussi informatif que je l'avais espéré.

Parmi les 4 qui offriraient le plus de compatibilité, de précision et de durée de stockage? Quelle est vraiment la grande différence entre la norme 502?

Adam
la source

Réponses:

10

Les noms de classement Unicode peuvent inclure un numéro de version pour indiquer la version de l'algorithme de classement Unicode (UCA) sur lequel le classement est basé. Les classements basés sur UCA sans numéro de version dans le nom utilisent les version-4.0.0clés de poids UCA . Un nom de classement tel que celui utf8_unicode_520_cibasé sur les clés de pondération UCA 5.2.0 .

Voir https://dev.mysql.com/doc/refman/5.6/en/charset-collation-names.html .

Mathias Bynens
la source
Pour expliquer plus à ce sujet: le classement ne modifiera pas l'encodage utilisé (ce que MySQL appelle à tort character setou charset), utf8vous fournira donc un UTF-8 à 3 octets (non standard) et utf8mb4vous fournira un UTF-8 à 4 octets.
jynus
1
Donc, en anglais simple, quelle est la différence entre UCA 4.0.0 et UCA 5.2.0 autre qu'un est plus récent. Quel serait l'avantage ou le désavantage?
Adam
4
Cela affecte le tri. Si vous avez absolument besoin de trier par rapport à une version plus récente (mais toujours obsolète) de la norme Unicode, alors vous voudrez peut-être utiliser 520_ci. Pour mes sites Web, je m'en fichais.
Mathias Bynens
quelle est la taille en octets du plus grand caractère de taille en octets du utf8mb4_unicode_520_ciclassement?
oldboy