인포믹스 varchar인 경우에는 실제 데이터 크기에 대한 계산을 하는 overhead가 있기 때문에 varchar는 특별히 제한을 하여 사용하는 것이 좋다. varchar는 내부적으로 저장이 되는 시점에 실제 데이터 크기를 별도로 관리합니다. 일단 한 번 저장되고 마는 경우는 크게 문제 삼지 않는다 하더라도, 일단 입력된 데이터에 대하여 업데이트를 하는 경우, 초기 데이터의 크기보다 길이가 큰 값으로 업데이트 되는 경우에는 새로운 공간에 저장이 되므로, 빈번한 수정/삭제를 하는 테이블에는 별로 권장하지 않는다.

VARCHAR는 아래와 같은 경우로 제한하여 사용한 경우에 효과를 볼 수 있다.

<VARCHAR를 권장하는 경우>
1. 컬럼에 비고란처럼 전체의 데이터 건수 중에 10% 미만으로 해당 컬럼 값이 존재하는 경우
(즉, 실제로 해당 컬럼에 데이터 값이 없는 경우가 대부분인 경우에 사용하면 디스크 공간 절약의 기능이 있음)
2. 일단 한 번 입력이 되면, 그 데이터의 값이 변경될 확률이 미비한 특성을 가진 컬럼
3. 해당 컬럼값을 기준으로 빈번하게 검색 대상이 되지 않는 컬럼

<VARCHAR보다 CHAR가 더 나은 경우>
1. address처럼 길이는 가변이지만, 대부분의 레코드들이 그 값을 가지고 있는 경우
2. 그 데이터 값이 빈번하게 변경되는 컬럼
3. 인덱스를 구성해야 하는 컬럼. 즉 빈번하게 검색 및 비교의 대상이 되는 컬럼

<어떠한 이유로든지, CHAR보다 VARCHAR를 써야하는 경우의 가이드>
- VARCHAR컬럼의 최소 크기를 반드시 지정하여 준다. 이때 최소 크기는 일반적으로 해당 컬럼이 갖을 수 있는 데이터 크기의 average로 설정한다.
AND