Pergunta

é VARCHAR (100) melhor do que VARCHAR (500) de um ponto de vista do desempenho? E sobre o uso do disco?

Falando sobre PostgreSQL hoje, não algum banco de dados algum tempo na história.

Foi útil?

Solução

Eles são idênticos.

A partir da documentação do PostgreSQL:

http://www.postgresql.org/docs/8.3/ static / datatype-character.html

Dica: Não há nenhum desempenho diferenças entre estes três tipos, além do aumento do tamanho do armazenamento quando utilizando o tipo com brancos, e alguns ciclos extra para verificar o comprimento quando armazenar num comprimento-constrangido coluna. Enquanto personagem (n) tem vantagens de desempenho em algum outro sistemas de banco de dados, ele não tem tal vantagens no PostgreSQL. Na maioria situações de texto ou variável caráter deve ser utilizado.

Aqui eles estão falando sobre as diferenças entre char (n), varchar (n) e texto (= varchar (1G)). A história oficial é que não há nenhuma diferença entre varchar (100) e texto (muito grande varchar).

Outras dicas

TEXT / é / o mesmo que VARCHAR sem um comprimento explícito, o texto

"A exigência de armazenamento por um curto cadeia (até 126 bytes) é um byte mais a cadeia real, que inclui o preenchimento do espaço no caso de personagem. cadeias mais longas tem 4 bytes gerais em vez de 1. cordas longas são comprimidas pelo sistema automaticamente, assim que o físico exigência no disco pode ser menos. valores muito longos também são armazenados em mesas de fundo para que eles não fazer interferir com o acesso rápido a mais curta valores da coluna. Em qualquer caso, o mais longa cadeia de caracteres possível que pode ser armazenado é de cerca de 1 GB. "

refere-se a ambos VARCHAR e TEXTO (desde VARCHAR (n) é apenas uma versão limitada do texto). Limitando sua VARCHARs artificialmente não tem armazenamento real ou benefícios de desempenho (a sobrecarga é baseado no comprimento real da cadeia, não o comprimento da varchar subjacente), exceto possivelmente para comparações contra wildcards e expressões regulares (mas no nível em que começa a importa, você provavelmente deve estar a olhar para algo como suporte a indexação de texto completo de PostgreSQL).

Não há nenhuma diferença entre varchar(m) e varchar(n) ..

http://archives.postgresql.org/pgsql-admin/ 2008-07 / msg00073.php

Há uma diferença entre varchar(n) e text porém, varchar(n) foi construído em um constrangimento que deve ser verificado e na verdade é um pouco mais lento.

http://archives.postgresql.org/pgsql-general/ 2009-04 / msg00945.php

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