sitelink1 | |
---|---|
sitelink2 | |
extra_vars5 | |
extra_vars6 |
Type | Bytes | Minimum Value | Maximum Value |
(Signed/Unsigned) | (Signed/Unsigned) | ||
TINYINT | 1 | -128 | 127 |
0 | 255 | ||
SMALLINT | 2 | -32768 | 32767 |
0 | 65535 | ||
MEDIUMINT | 3 | -8388608 | 8388607 |
0 | 16777215 | ||
INT | 4 | -2147483648 | 2147483647 |
0 | 4294967295 | ||
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
0 | 18446744073709551615 |
Column Type | Storage Required |
DATE | 3 bytes |
DATETIME | 8 bytes |
TIMESTAMP | 4 bytes |
TIME | 3 bytes |
YEAR | 1 byte |
Column Type | ``Zero'' Value |
DATETIME | '0000-00-00 00:00:00' |
DATE | '0000-00-00' |
TIMESTAMP | 00000000000000 |
TIME | '00:00:00' |
YEAR | 0000 |
MySQL 에서 INT 는 4바이트입니다. -2147483648 ~ 2147483647 까지 표현할 수 있죠.
UNSIGNED INT는 0 ~ 4294967295 까지 표현할 수 있습니다.
INT나 UNSIGNED INT 모두 표현할 수 있는 숫자의 종류는 2^32 = 4294967296 가지 입니다.
단지 표현 범위가 다를 뿐이죠.
그리고 말씀하신 0 ~ 255 까지 표현이 가능한건 TINYINT UNSIGNED 입니다.
그냥 TINYINT 는 -128 ~ 127 까지 표현이 가능합니다.
같은개수의 비트에서 음수를 표현하려면 제일 처음의 비트는 부호비트로 사용된답니다.
부호비트를 사용하지 않으면 숫자의 최대 크기가 두배가 되겠죠.
아무튼.. UNSIGNED 를 사용하는 이유는 컬럼의 효율성을 목적으로 합니다.
컬럼에 들어갈 값이 0~200 까지의 숫자라면 TINYINT UNSIGNED(0~255) 를 사용하던가
SMALLINT(-32768 ~ 32767) 등을 사용할 수 있지만 1바이트짜리 TINYINT UNSIGNED를
사용하는게 가장 적은 공간을 차지하기 때문에 가장 올바른 선택이라고 할 수 있죠.
UNSIGNED 라는게 존재하지 않으면 공간을 두배나 차지하는 SMALLINT를 사용하는 수밖에요.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
23 | MySQL Database Migration Wizard | 황제낙엽 | 2019.04.05 | 187 |
22 | MySQL 워크벤치(Workbench) | 황제낙엽 | 2019.04.05 | 165 |
21 | MySQL을 로컬이 아닌 외부에서 접속하기 위한 확인 사항 | 황제낙엽 | 2018.11.30 | 883 |
20 |
phpMyAdmin
![]() | 황제낙엽 | 2007.11.11 | 559 |
» | DataType 과 최대값, 최소값 | 황제낙엽 | 2007.09.03 | 305 |
18 | mysql에 오라클의 rownum같은 필드를 추가하기 (java code) | 황제낙엽 | 2007.05.19 | 276 |
17 | MySQL에서 Data Too Long 이라는 오류를 만났을 경우...(MYSQL5) | 황제낙엽 | 2007.04.04 | 613 |
16 | MySQL 원격 접속하기 | 황제낙엽 | 2007.03.09 | 365 |
15 | mysql latin1을 utf-8로 바꾸기 | 황제낙엽 | 2007.01.29 | 349 |
14 | MYSQL_FRONT(3.0) 원격데이타베이스 관리 툴입니다. | 황제낙엽 | 2005.11.18 | 188 |
13 | Mysql 관리용 툴들 | 황제낙엽 | 2005.11.30 | 151 |
12 | mysql 프롬프트에서 외부의 sql스크립트 파일 실행하기 | 황제낙엽 | 2005.11.22 | 594 |
11 | MySQL 초보가이드 (임시업로드) | 황제낙엽 | 2003.06.17 | 163 |
10 | 쿼리예제모음 | 황제낙엽 | 2004.11.29 | 128 |
9 | mysql database를 검사후 재시작하는 스크립트 | 황제낙엽 | 2004.11.22 | 322 |
8 | cmd창에서 mysql을 root계정으로 접속하는 방법 | 황제낙엽 | 2004.11.18 | 195 |
7 | mysql의 fragmentation (파일 조각 모음) | 황제낙엽 | 2004.11.18 | 229 |
6 | mysql db state 체크 및 복구 | 황제낙엽 | 2004.11.18 | 129 |
5 | 쉘프롬프트에서 sql스크립트 파일 실행하기 | 황제낙엽 | 2004.11.18 | 130 |
4 | 인덱스관련 | 황제낙엽 | 2004.11.18 | 98 |