Pergunta

Alguém tem alguma dica ou momento a ser observado ao tentar migrar tabelas MySQL dos conjuntos de caracteres suecos ou ascii padrão, que não diferenciam maiúsculas de minúsculas, para utf-8?Alguns dos projetos em que estou envolvido buscam uma melhor internacionalização e o banco de dados será uma parte significativa dessa mudança.

Antes de alterarmos o banco de dados, vamos converter cada site para usar codificação de caracteres UTF-8 (do menos crítico para o mais) para ajudar a garantir que todas as entradas/saídas estejam usando o mesmo conjunto de caracteres.

Obrigado por qualquer ajuda

Foi útil?

Solução

Algumas dicas:

  • Seu CHAR e VARCHAR colunas usarão até 3 vezes mais espaço em disco.(Você provavelmente não terá muito espaço em disco para palavras suecas.)
  • Usar SET NAMES utf8 antes de ler ou gravar no banco de dados.Se você não fizer isso, obterá caracteres parcialmente distorcidos.

Outras dicas

Cuidado com as limitações de comprimento do índice.Se uma tabela estiver estruturada, diga:

A Varchar (255) B Varchar (255) Key ('A', 'B')

Você ultrapassará o limite de 1.000 bytes em comprimentos de chave.255+255 está bom, mas 255*3 + 255*3 não vai funcionar.

Seu CHAR e VARCHAR colunas usarão até 3 vezes mais espaço em disco.

Somente se estiverem cheios de latin-1 com ordinais> 128.Caso contrário, o aumento do uso de espaço do UTF-8 é mínimo.

As colações nem sempre são favoráveis.Você obterá um agrupamento de umlats com versões sem umlat, o que nem sempre é correto.Talvez você queira usar utf8_bin, mas tudo também diferencia maiúsculas de minúsculas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top