그런 사양의 확인은 메뉴얼에서 하셔야지요 :/)
실제로 text 타입이라는 자료형은 PostgreSQL 의 경우 다른 DBMS 와는 성격이 좀 다릅니다. 일반적으로 text 자료형은 ASCII 자료를 저장하는 BLOB 형 비슷한 의미로 일반적으로 사용됩니다. 하지만 PostgreSQL 의 경우에는 8kb까지 저장 가능한 varchar 자료형으로 이해를 하시는 것이 더 적당합니다.
여기서 말씀 드린 바와 같이 PostgreSQL 에는 8kb limitation 이라는 유명한 한계가 있습니다. 하나의 field 의 크기가 8kb 를 넘길 수 없으며, 한 tuple 전체의 합이 8kb 를 넘길수도 없습니다. 그렇다면 8kb 이상의 크기를 가지는 자료형은 어떻게 해야 할까요. 그때는 Large object 라는 것으로 사용해야 합니다. 그 사용법은 여기 자료실 또는 'Others' 메뉴에서 '거대객체' 또는 'large object' 라는 단어로 찾기를 해 보시면 확인할 수가 있을 것입니다.
현재 8kb 한계를 깨기 위한 project 가 진행중이며, 7.1 버전대 부터는 없어질 것이라고 하니 아마도 곧 해결 될 것으로 보입니다. 참고로 하시기 바랍니다.
>>이충수 님께서 쓰시길<<
:: 안녕하세요. 궁금한게 있어서 몇자 적습니다.
:: int필드 3개와 text필드 20개(그중 실제 사용 7개)를 사용을 하려했습니다.
:: text필드에 최대 얼마의 용량이 들어가는지 몰라서 확인해본바
:: (\dT 라는 명령) "variable/length string, no limit specified"라고 되어있더군요.
:: ORACLE는 text필드가 2GByte라는걸 듣고 이것도 그정도 되겠지 했는데...
:: 실제 사용시 10424Byte의 용량에 에러가 났습니다.
:: 에러 내용인즉...
:: PostgreSQL query failed: ERROR: Tuple is too big: size 10424, max size 8128
:: text가 무한대라고 나왔는데... tuple가 8k도 안된다니 황당하더라구요.
:: 그리고 물어보고 싶은건... 다른 DB에선 그런 문제들이 없는지요?
:: 또 어떻게 극복해야하는지 알려주시면 감사하겠습니다.
|