PostgreSQL에서 “varchar”와 “text”유형의 차이점은 무엇입니까? 이 문서 에는 이에 대한 언급이 없습니다. 이것이

그들 사이의 차이점에 대해 아는 것은 varchar한계 가 있으며, text그렇지 않습니다. 이 문서 에는 이에 대한 언급이 없습니다.

이것이 유일한 차이점입니까? 성능 등에 대한 고려가 없습니까?



답변

이것의 배경은 다음과 같습니다. 구 Postgres 시스템은 PostQUEL 언어를 사용하고 이름이 지정된 데이터 유형을 사용했습니다 text(다른 사람이 텍스트를 저장하는 유형의 이름이라고 생각했기 때문에). 그런 다음 Postgres는 SQL을 언어로 사용하도록 변환되었습니다. text유형 을 바꾸는 대신 SQL 호환성을 달성하기 위해 새로운 유형 varchar이 추가되었습니다. 그러나 두 유형 모두 내부적으로 동일한 C 루틴을 사용합니다.

이제 어느 곳에서나 다른 곳에서는 text파생 할 수없는 경우를 위해 기본 유형으로 하드 코딩됩니다. 또한 대부분의 함수는 text인수를 받거나을 반환 하는 경우에만 사용할 수 있습니다 text. 두 유형은 이진 호환 가능하므로 캐스팅은 사소한 구문 분석 시간 작업입니다. 그러나 사용 text은 여전히 ​​시스템에 전반적으로 더 자연 스럽습니다.

그러나 이러한 장점 외에도 눈에 띄는 차이는 없습니다. 더 예쁘게 보이는 것을 사용하십시오. 😉


답변

이 비슷한 질문을 참조하십시오 . jist는 차이가 없지만 더 많은 공간을 사용하지만 성능을 향상시키지 않기 때문에 varchar(n)일반적으로 선호 하지 않는 최대 길이를 지정하는 것입니다.


답변

http://www.postgresql.org/docs/8.4/interactive/datatype-character.html

character varying(n), varchar(n)        variable-length with limit
text                                    variable unlimited length

선언 된 길이가없는 텍스트 이 두 유형간에 성능 차이는 없습니다.


답변