[Mysql] varchar(256) vs varchar(255)

DB컬럼의 변경을 위해서 무의식적으로 varchar(256)을 신청을 했는데, DB관리자로 부터 다음과 같은 이야기를 들었다.

“정말로 긴 글자를 저장하셔야 하는 상황이라면 varchar(256) 대신 varchar(255) 로 처리가 가능하신지도 문의드립니다.
255 와 256은 mysql 내부적으로 차이가 큽니다.”

음 그래요? 무슨 차이 일까?

 

DBMS는 내부에서 varchar타입을 저장할때, 그 데이터의 길이도 저장하는데, 255 까지는 이 길이를 저장하는데 single byte가 필요하다.

그러나 256 혹은 그 이상이 되는 순간, two byte 가 필요하게 되면서 더 많은 디스크 점유를 발생시킨다.

덧붙여, 오라클을 제외한 대부분의 DBMS는 NULL 과 빈 string 을 의도적으로 구별하는데, 이 역시 varchar컬럼이 더 많은 공간을 차지하게 되는 원인이 된다.

 

출처 (stackoverflow.com/a/2340662)

Leave a Reply

Your email address will not be published. Required fields are marked *