[firebase-br] Espaco: CHAR x VARCHAR

Eduardo Jedliczka jedyfb em gmail.com
Qua Jul 1 22:07:51 -03 2009


ótima resposta.... e uma dica para quem ainda não "pegou" a diferença...
o VAR de varchar é a abreviação de VARIÁVEL, ou seja, um campo varchar é
um campo char de tamanho variável que aceita de ZERO até o seu tamanho
máximo de caracteres.

Abraço

Eduardo

Em Qua, 2009-07-01 às 21:17 -0300, Douglas Tosi escreveu:

> 2009/7/1 Rodrigo <dominio em engeplus.com.br>:
> > Mas pelo que sei Char é usado para campos com tamanho fixo, ex. Char(1) para
> > indicar se é verdadeiro ou falso, "S" ou "N"
> > ou Estado char(3) para 'SC' ou 'PR' e varchar(160) se usar  100 ele libera
> > os outros 60, nao reserva.
> 
> A idéia é esta mesma, Rodrigo. Mas char() pode ser útil também para
> campos maiores. Por exemplo para armazenar uma guid em formato string,
> pode-se definir um char(32). O que determina a escolha de char é que
> todos os valores deste campo terão exatamente 32 caracteres.
> 
> Mas é engano achar que o armazenamento do varchar é mais eficiente.
> O tráfego na rede sim é mais eficiente, mas para armazenar o varchar
> consome 2 bytes a mais que o char em todos os casos.
> Outro fator a se levar em consideração é que o char(n) sempre será
> interpretado como tendo n caracteres. Então imagine que você declara
> um char(4) e armazena "ab". O valor real retornado para sua aplicação
> quando você selecionar este campo será "ab  " (com dois espaços no
> final).
> 
> hth,



Mais detalhes sobre a lista de discussão lista