본문 바로가기
DataBase/MySQL

[MySQL] unsigned 의미 및 사용

by 선인장 🌵 2022. 4. 14.
728x90
728x90

MySQL unsigned 의미 및 사용

MySQL에서 컬럼 생성 시 데이터형이 숫자로만 이뤄진 경우 int형을 많이 사용한다.

이때 unsigned라는 부분이 보여서 해당 내용에 대해서 한번 알아보았다.

[MySQL] unsigned 의미 및 사용

1. unsigned 의미

int형의 범위는 음수를 포함하여 "-2147483648 ~ 2147483647"이다.

그러다 int형을 사용하는 경우 특별한 부분이 아니라면 음수를 거의 사용하지 않는다.

그렇다면 int형을 사용하면서 좀 더 큰 범위를 사용하고자 한다면 이때 unsigned를 설정하면 된다. 

int형에 unsigned를 설정하게 되면 범위는 "0 ~ 4294967295"가 된다.

기본적인 int형의 범위에서 음수 값을 제외한 만큼 양수의 범위가 늘어나게 된 것이다.

 

MySQL :: MySQL 5.7 Reference Manual :: 11.1.6 Numeric Type Attributes

11.1.6 Numeric Type Attributes MySQL supports an extension for optionally specifying the display width of integer data types in parentheses following the base keyword for the type. For example, INT(4) specifies an INT with a display width of four digits. 

dev.mysql.com

 

What does `unsigned` in MySQL mean and when to use it?

What does "unsigned" mean in MySQL and when should I use it?

stackoverflow.com

728x90

2. unsigned 사용

unsigned의 경우는 특별히 음수를 사용할 이유가 없는 AUTO_INCREMENT 설정을 하는 ID 컬럼에 사용하는 것을 추천한다.

아니면 음수를 사용하는 부분이 없는 integer type이라면 unsigned 설정하여 사용하도록 하자.

# UNSIGNED 설정

CREATE TABLE `tb_test_list` ( 
`id`              int(11) UNSIGNED        NOT NULL AUTO_INCREMENT,
 
... 이하 생략 ...
728x90

3. 정리

MySQL을 사용 시 위와 같이 사용에 상황에 맞도록 설정하여 사용하는 게 리소스 낭비를 줄일 수 있는 방법이다.

간단한 프로그램 등이라면 큰 차이가 없을 수 있겠지만 계속적으로 축척하여 쌓아야 하는 데이터가 있다면 unsigned 설정 여부에 따라 Insert 할 수 있는 수가 2,147,483,648 나 차이가 나게 되는 것이다.

728x90
728x90


🌵댓글

 

loading