장발의 개발러

테이블 생성 시 코드값은 VARCHAR로 하는 것을 권장 본문

개발이즈 마이라이프/DB & BigData

테이블 생성 시 코드값은 VARCHAR로 하는 것을 권장

장발의 개발러 2013. 11. 7. 14:44

****************************
 작성일: 2013-11-07
 작성자: Myung-Ju.Kim      
 블로그: imover.tistory.com
****************************


테이블 생성 시 개인적으로 코드값은 VARCHAR로 하는 것을 권장한다.


어디서 따로 보거나 들은 것이 아니고 순수 개인적인 경험에 의한 것이다.


과거 적지 않는 데이터가 들어 있는 테이블의 코드값 필드를 제휴업체의 차세대 작업으로 인해 3자리에서 4자리로


변경한 적이 있었는데, 최초 테이블 설계하신 분이 코드값 필드를 tight하게 CHAR(3)으로 고정해 놓으시는 바람에


아래와 같은 수정 명령을 내렸더니 기존 데이터 들을 모두 업데이트 하느라고 1시간 가까운 시간이 흐른 후에야


반가운? 응답을 받을 수 있었다. (물론 하드웨어와 데이터 양에 따라 다르겠지만 나의 경우는 그랬다.)



alter table 테이블명 modify(코드값필드 CHAR(4));



하지만, 최초 테이블 설계 시 코드값 필드를 CHAR(3)이 아닌 VARCHAR(3)으로 지정했었더라면 아래와 같이 코드값


필드의 자리를 늘리는 명령을 수행할 경우 위와 비교했을 때 빛의 속도와 같은 응답을 받을 수 있을 것이다.^^



alter table 테이블명 modify(코드값필드 VARCHAR(4));



이는 CHAR의 경우 자리수를 3에서 4로 늘리게 되면 기존에 입력된 자료들의 자리수를 모두 4자리로 맞추기 위해 공백


한칸씩을 모든 데이터 뒤에 추가하는 update 작업을 수행하는데, VARCHAR의 경우는 4자리로 선언하더라도 3자리의


값이 들어오면 3자리만 차지하게 되므로 기존 데이터에 대한 update 작업이 필요 없기 때문이다.




물론, 그렇다고 해서 코드값 필드를 무조건 VARCHAR로 하라는 것은 아니며, 앞으로 있을지 모를 자리수 변경에 대비


하기 위해선 CHAR보다 VARCHAR가 훨씬 유용 하다는 것이다.^^