음, 어려운 질문이시네요.
제 개인적인 생각에는, char(1)과 smallint의 사용은 속도 측면에서는 거의 차이가 없을 듯합니다.
우선 char(1)은 1byte를, smallint는 2byte를 차지 합니다.
비교 작업의 내부적으로 보면, Informix의 char에 대해 값을 비교할 때에는, 2byte씩 비교하기 때문에 smallint의 2byte값에 대한 비교와도 거의 차이나지 않을 듯 하구요,
그러나, 두개에는 큰차이가 있습니다.
int는 숫자만을 char는 문자를 저장한다는 제약 사항 자체를 type이 포함하는 것이기 때문에,
만일 1~9이외의 문자를 받아서는 안되는 컬럼이라면,
char(1)이라고 정의하시는 것은 또한번의 check를 하셔야 한다는 걸 의미하죠.
즉 data type은 우선 첫번째로 저장할 값의 속성을 잘 파악하시고,
그 다음 저장 영역의 효율성 등을 고려하시는 게 좋을 듯합니다.
DBMS의 목적중 가장 중요한것의 하나가 바로 data의 무결성이니까요..
그럼, 도움이 되셨길,,
수고하세요.
-- 궁금이 님이 쓰신 글:
>> 안녕하세요?
>> DSN을 싸랑하는 궁금이 입니다.^^
>>
>> 다름이 아니라
>> 1부터 9까지의 값이 들어가는 칼럼이 있다고 할때
>> (1~9까지만 들어가고 숫자로만 이루어져 있음)
>> 데이터 타입을 char(1)으로 하는게 나을지
>> 아님 smallint로 하는게 나을지 궁금합니다.
>>
>> 저의 소견으로는
>> 만약 char(1)으로 넣으면 차지하는 바이트는 작지만
>> 검색할 때 숫자타입인 smallint보다는 효용성이 떨어질 것 같은데...
>>
>> 고수님들의 정확한 답변 부탁드리겠습니다.
>> 그럼
>> 유쾌,상쾌,통쾌한 하루하루 되세요.
|