반응형

 

 

MySQL 기본 명령어를 사용해 테이블을 만들다 마주친 int(11) int(4) 등의 형태가 요상해서

찾아본 내용을 정리해봄

 

 

 

[MySQL] 데이터베이스 테이블 생성, 조회, 데이터 추가 명령어

생활코딩에서 복습한 기념으로 기본적인 데이터베이스 명령어인 테이블 생성, 조회 등을 기록해보려함 Windows에서 MySQL을 사용하기 위해서는 여기로 들어가 다운로드 하면된다 https://dev.mysql.com/d

studyingpingu.tistory.com

 

 

사실 이러한 형태는 zerofill 이라는 타입을 추가로 정의해주지 않는다면

int(4)나 int(11)이나 같은 형태로 출력이되고

 

데이터베이스에 저장될때도

두 개의 표현 모두, 원래 int 자료형의 범위 (-2,147,483,648 to 2,147,483,647) 만큼

동일한 크기로 저장된다고 한다

 

int(4)로 저장한다고 int(11)보다 적은 사이즈가 디비에 저장되는게 아니라서

공간을 효율적으로 줄이는것도 아니라고함

 

대신에 저장된 숫자의 공백칸 만큼을 0으로 표현해주는 차이라고 한다

int(4) 이지만 한자리 숫자가 저장된다면,

4칸을 보여주기 위해 앞의 3칸을 0으로 채운 0004를 출력한다는 것

 

 

아래는 그 예제

 

 

 

추가로 달린 댓글에서 보면 이러한 제로필 방식은 사용하지 않는걸 강하게 추천하고 있다

이 댓글이 받은 좋아요 수가 높은걸 보면

그냥 개념만 알아두고 사용은 피하는게 좋을것같다

 

대충 몇개의 숫자가 보여질지 선택하는건 DB단에서 하는게 아니라

UI 단에서 해주는 부분이므로 이걸 데이터베이스에서 건드리는 순간

문제가 생길수있는 확률이 올라간다고 하니

 

개념만 이해하는 식으로 넘어가자

 

 

 

 

참고 : https://stackoverflow.com/questions/5256469/what-is-the-benefit-of-zerofill-in-mysql

 

What is the benefit of zerofill in MySQL?

I just want to know what is the benefit/usage of defining ZEROFILL for INT DataType in MySQL? `id` INT UNSIGNED ZEROFILL NOT NULL

stackoverflow.com

 

 

반응형

+ Recent posts