Diferenças de MySQL Collation utf8_unicode

10

Mas eu tenho lido sobre a importância do MySQL Collation e o que aprendi até agora sobre compatibilidade e precisão é que essas 4 parecem ser minha melhor aposta.

  • utf8_unicode_ci
  • utf8_unicode_520_ci
  • utf8mb4_unicode_ci
  • utf8mb4_unicode_520_ci

Pelo meu entendimento, o uft8mb4 seria bom para caracteres com suporte a linguagem mutli (caracteres) (japonês, por exemplo). O uf8 suporta apenas 3 bytes, enquanto o uf8mb4 suporta 4 bytes. Parece que a escolha óbvia seria uf8mb4, mas o problema é que você tem um limite de comprimento (droga! Quero o meu bolo e também o comerei), o que é uma pequena preocupação (eu acho).

Então você leva em consideração o padrão 520; que oferece mais, do pouco que eu pude encontrar nele. Mas é claro que esse é o problema, eu pude encontrar muito pouco sobre isso. Só que as pessoas dizem que é uma melhoria, mas são muito vagas sobre como isso é.

Eu quero o máximo que posso obter com o mínimo de restrições possível ... Imaginei que alguém aqui pode saber uma coisa ou duas. O site oficial do MySQL não foi tão informativo quanto eu esperava.

Dos 4 que ofereceriam maior compatibilidade, precisão e maior comprimento de armazenamento? Além disso, qual é realmente a grande diferença entre o padrão 502?

Adão
fonte

Respostas:

10

Os nomes de agrupamento Unicode podem incluir um número de versão para indicar a versão do Algoritmo de agrupamento Unicode (UCA) no qual o agrupamento se baseia. Os agrupamentos baseados em UCA sem um número de versão no nome usam as version-4.0.0chaves de peso do UCA . Um nome de agrupamento, como utf8_unicode_520_cié baseado nas chaves de peso do UCA 5.2.0 .

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

Mathias Bynens
fonte
Para explicar mais a fundo: o agrupamento não modifica a codificação usada (o que o MySQL chama erroneamente character setou charset), portanto utf8fornece UTF-8 de 3 bytes (não padrão) e utf8mb4fornece UTF-8 de 4 bytes.
jynus
11
Portanto, em inglês simples, qual é a diferença entre o UCA 4.0.0 e o UCA 5.2.0 diferente de um é mais recente. Qual seria a vantagem ou desvantagem?
Adam
4
Isso afeta a classificação. Se você absolutamente precisar classificar em uma versão mais recente (mas ainda desatualizada) do padrão Unicode, poderá usar 520_ci. Para meus sites, eu não poderia me importar menos.
Mathias Bynens
qual é o tamanho de byte do maior caractere de tamanho de byte no utf8mb4_unicode_520_ciagrupamento?
Oldboy