PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Diferença entre text e varchar (variação de caracteres)


Não há diferença, sob o capô é tudo varlena (matriz de comprimento variável).

Confira este artigo do Depesz:http://www.depesz.com/index.php/2010/03/02/charx-vs-varcharx-vs-varchar-vs-text/

Alguns destaques:

Para resumir tudo:
  • char(n) – ocupa muito espaço ao lidar com valores menores que n (preenchê-los para n ), e pode levar a erros sutis devido à adição de espaços à direita, além de ser problemático alterar o limite
  • varchar(n) – é problemático alterar o limite no ambiente ao vivo (requer bloqueio exclusivo ao alterar a tabela)
  • varchar – assim como texto
  • texto – para mim um vencedor – sobre (n) tipos de dados porque não tem seus problemas, e sobre varchar – porque tem nome distinto

O artigo faz testes detalhados para mostrar que o desempenho das inserções e seleções para todos os 4 tipos de dados são semelhantes. Ele também analisa detalhadamente maneiras alternativas de restringir o comprimento quando necessário. Restrições ou domínios baseados em função fornecem a vantagem de aumento instantâneo da restrição de comprimento e, com base no fato de que diminuir uma restrição de comprimento de string é raro, depesz conclui que um deles é geralmente a melhor escolha para um limite de comprimento.