4.10 Jaké jsou rozdíly mezi různými znakovými typy?

Z PostgreSQL
Přejít na: navigace, hledání
Typ Interní název Poznámky
VARCHAR(n) varchar n určuje maximální délku
CHAR(n) bpchar řetězec je do dané délky rozšířen mezerami
TEXT text bez omezení délky
BYTEA bytea pole bytů nespecifikované délky
"char" char jeden znak

Na interní názvy můžete narazit v systémovém katalogu nebo v některých chybových hlášeních.

Čtyři první typy jsou tzv. varlena typy (první čtyři byty na disku jsou obsahují délku, ostatní obsahují vlastní data). Skutečně obsazený prostor je tedy o něco málo větší než deklarovaná velikost. Na druhou stranu, delší řetězce jsou komprimovány, takže obsazený prostor na disku může být menší než se čeká.

VARCHAR(n) je vhodný pro ukládání různě dlouhých řetězců u kterých známe délkové omezení, TEXT pro řetězce bez omezení délky (maximum je jeden gigabyte).

CHAR(n) se používá pro uložení stejně dlouhých řetězců. CHAR(n) doplní mezerami na specifikovanou délku, VARCHAR(n) hodnoty se ukládají tak jak jsou. BYTEA je pro ukládání binárních dat - non ASCII hodnot. Všechny zmíněné typy mají podobné výkonové charakteristiky.