SQL DB의 char과 varchar의 차이점
페이지 정보
본문
VARCHAR는 variable character, 즉 가변성의 문자라는 의미입니다.
보통 CHAR같은 경우는 메모리상에서 CHAR 크기만큼을 미리 할당을 해놓는 반면에
VARCHAR같은 경우는 메모리상에서 필요할때마다 할당을 하게 됩니다. linked list처럼 말이죠.
예를 들어, CHAR(10)이라고 하면, 메모리에 character가 들어갈 공간크기를 10만큼 미리 만들게 됩니다.
그후, 입력되는 값들을 저장하죠.
만일, 한글자만 들어간다면, 나머지 9만큼의 공간은 메모리에서 사용되지 않은채로 남겨둡니다.
만일 VARCHAR(10)이라고 한 후, 한글자만을 입력하면,
메모리에서는 먼저 하나의 공간만을 할당한 후 글자를 저장해놓습니다.
만일 두글자가 입력되면, 하나의 공간에 다시 하나의 공간을 더 할당한 후 두글자를 저장하게되죠.
즉 비어있는, 낭비되는 메모리가 하나도 없습니다.
따라서, VARCHAR의 경우 메모리를 훨씬 효율적으로 사용할 수 있게 됩니다.
하지만, VARCHAR의 특성상 작은크기의 CHAR인 경우에는 오히려 VARCHAR가 메모리를 더 많이 사용하기도 합니다.
그리고 연산속도는 CHAR가 더 빠릅니다.
자료출처
http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10110&eid=UQGJ1VlPzE2W9fuyHK8VDglZ2xd6q1gg&qb=Y2hhcr/NIHZhcmNoYXIgwvfAzMGh&pid=e/zXGwoQsDRssZxT668sss--434039&sid=R-zu4-HZ-EcAAExWEIk