본문 바로가기
MySQL

[MySQL] tinyint, smallint, int, bigint 비교

by 개발LOG 2024. 2. 10.

데이터베이스에서 int 타입별로 특징이 다르다.

 

tinyint  <  smallint  <  int  <  bigint

 

tinyint

크기 : 0 ~ 255

비고 : 0을 시작으로 2^8(=2의 8승=256) 번째까지 정수

용량 : 1바이트

 

smallint

크기 : -32,768 ~ 32,767

비고 : -2^15 ~ (2^15 - 1) 사이의 정수. 2의 15승에서 1을 빼는 이유는 0의 자리가 포함되기 때문입니다. 나머지들도 모두 마찬가지입니다.

용량 : 2바이트

 

 int

크기 : -2,147,483,648 ~ 2,147,483,647

비고 : -2^31 ~ (2^31 - 1) 사이의 정수. 역시 0의 자리를 위해 양수에서 -1 해줍니다.

용량 : 4바이트

 

bigint

크기 : -9,223,372,036,854,775,808‬ ~ 9,223,372,036,854,775,8087

비고 : -2^63 ~ (2^63 - 1) 사이의 정수. 0의 자리를 확보하기 위해 역시 뒤에서 -1 해줍니다.

용량 : 8바이트

 

 

테이블을 생성할 때 id 타입에 관해 고민을 하곤 한다. id 값이 43억이 넘어가는 아주 큰 DB(대용량 데이터 관련)를 사용한다면 bigint 타입을 선택해야 하지만, 그렇지 않다면 주로 int 타입을 사용한다.