woombo design e comunicação

[ Posts marcados como » ‘string types’ ]

MySQL: CHAR vs VARCHAR

27.05.2010 Acompanhe

MySQL

Acredito que muitos usem e poucos saibam o porque estão usando determinados string types no momento que estão criando seus campos em seu banco de dados relacional.

Pelo menos isso já aconteceu diversas vezes comigo e toda vez opto pelo que considero ser o melhor mesmo não tendo a menor idéia de qual realmente é o melhor, bom, depois de me deparar com uma situação vergonhosa, onde uma pessoa me perguntou qual a diferença entre os campos, decidi finalmente ir atrás e estudar, o resultado dessa pesquisa segue abaixo:

String Types CHAR e VARCHAR

Os tipos CHAR e VARCHAR são parecidos, mas diferem na maneira como eles são armazenados e recuperados. São declaradas com um comprimento que indica o número máximo de caracteres que você deseja armazenar. Por exemplo, CHAR (30) pode conter até 30 caracteres.

O comprimento de uma coluna CHAR é fixado para o comprimento que você declare, quando você cria a tabela. O comprimento pode ser qualquer valor de 0 a 255. Quando valores CHAR são armazenados, eles são preenchidos a direita com espaços até o comprimento especificado. Quando valores CHAR são recuperados, espaços extras são removidos.

Em contraste com o CHAR, valores VARCHAR são armazenados como um byte ou dois bytes de prefixo de comprimento, mais os dados. O comprimento do prefixo indica o número de bytes do valor. A coluna usa um byte de comprimento se os valores não requerem mais do que 255 bytes, dois bytes de comprimento, se os valores podem exigir mais de 255 bytes.

Qual é o melhor mesmo ?

Se você possui um sistema pequeno, com certeza não vai fazer diferença o string type que você selecionar, porém, se há a expectativa de que seu sistema cresça e chegue ao ponto em que cada byte é válido, então, eu teria como base 2 premissas:

  • Primeira -Conhecendo o tamanho do meu conteúdo e sabendo que ele não irá sofrer alterações bruscas, eu optaria pelo CHAR;
  • Segundo -Sabendo que o meu campo possui uma variação de tamanho de acordo com cada dado que é inserido na tabela, eu utilizaria o VARCAR.

Se realmente minha idéia está correta, eu não sei, mais pelo menos foi o que eu entendi.

[]’s

Fonte: MySQL

feito com wordpress | alguns direitos reservados | 2005/2024