Jaka jest różnica między typem „varchar” i „tekst” w PostgreSQL?


Odpowiedzi:


22

Tłem tego jest: stary system Postgres używał języka PostQUEL i używał nazwanego typu danych text(ponieważ ktoś uważał, że to dobra nazwa dla typu przechowującego tekst). Następnie Postgres został przekonwertowany na język SQL jako język. Aby osiągnąć zgodność z SQL, zamiast zmiany nazwy texttypu dodano nowy typ varchar. Ale oba typy używają wewnętrznie tych samych procedur C.

Teraz, do pewnego stopnia i w niektórych miejscach, textjest zakodowany na stałe jako typ domyślny, na wypadek, gdyby nic innego nie można było uzyskać. Ponadto większość funkcji jest dostępna tylko jako textargument lub powrót text. Te dwa typy są kompatybilne binarnie, więc rzutowanie jest trywialną operacją w czasie analizy. Ale korzystanie z systemu textjest ogólnie bardziej naturalne dla systemu.

Ale oprócz tych drobnych punktów nie ma zauważalnej różnicy. Używaj tego, co wygląda dla ciebie ładniej. ;-)


Och, dobre wytłumaczenie. Użyję „tekstu”, ponieważ nie dbam o kompatybilność, która blokuje korzystanie z określonego produktu. Dzięki!
Eonil

1

Zobacz to podobne pytanie . Największą zaletą jest to, że nie ma różnicy, ale określenie maksymalnej długości, na varchar(n)ogół nie jest na twoją korzyść, ponieważ zajmuje więcej miejsca, ale nie poprawia wydajności.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.