INT vs VARCHAR

2023. 11. 11. 22:05Project/멍뭉케어

프로젝트에서 클래스 다이어그램 작성 도중에 반려동물의 성별을 VARCHAR 타입으로 하여 'M' or 'W'으로 저장할 지, 아니면 INT 타입으로 하여 0 or 1로 저장할 지 고민이 되었다. 이에 INT 타입과 VARCHAR 중에 어떤 것이 우리 서비스에 맞을지 고민해보고자 글을 남긴다.

 

여러 블로그 및 레퍼런스를 찾아본 결과, 3가지 요소로 판단하는 것이 좋을 것 같다는 생각을 하게 되었다.

 

✅ 저장 공간

'INT'는 일반적으로 4byte를 사용하지만, 'varchar'는 저장된 문자열의 길이에 따라 다르다. 'gender' 컬럼의 경우, 'M' 과 'W' 한 문자만 저장한다면, varchar(1)는 1byte만 사용하므로 int보다 공간 효율이 더 좋을 수 있다.

 

✅ 쿼리 성능

int 타입은 문자열에 비해 비교 연산이 빠르므로, 성별에 따른 검색이나 조인 등의 쿼리가 자주 발생한다면 int가 성능적으로 더 유리할 수 있다.

 

✅ 가독성

'M'이 0 or 1보다 디버깅 할 때 더 직관적으로 이해할 수 있다. 개인적으로는 이 부분이 해당 고민의 결과를 도출하는데 기준이 되지는 않았다.

 

 

▶ 결론

결론부터 말하자면, VARCHAR를 사용하고자 한다. 그 이유는 우리 서비스가 성별에 따른 검색이나 조인 등의 쿼리가 자주 발생하지 않을 것 같다는 생각을 하여, [쿼리 성능] 때문에 INT를 사용하는 것은 바람직 하지 않다고 생각하였다. 따라서, [저장 공간]에 있어서 더 이점을 가진 VARCHAR를 사용하고자 한다.

 

'Project > 멍뭉케어' 카테고리의 다른 글

@Mapper 사용법  (1) 2023.11.27
EC2-MySQL-workbench 연동  (0) 2023.11.23
OAuth2.0  (0) 2023.11.16
Rest API  (0) 2023.11.08