카테고리 없음
<MYSQL> Data type
Jake2
2021. 7. 17. 17:06
이번 프로젝트를 진행하며 배운 것 중 하나라고 한다면
DB 의 효율적인 관리를 위해서는 당연하게도 컬럼 하나 타입 하나 신중하게 설계해야 한다는 것
예를 들어 Str 타입에서는CHARFIELD 면 가능할 column 에 굳이 TEXTFIELD 를 적용한다거나
INT 타입에서 굳이 BIGINT 를 사용한다거나 하는 경우다
그 이유는 각자 잡아먹는 메모리가 다르다는 것에 있다.
앞으로는 아래의 데이터 타입들을 고려해서 모델링을 작성할 것!
타입 | 정의 | 길이 |
TINYINT(n) | 정수형 데이터 타입 | - 1 Byte(2^8) - 128 ~ + 127 또는 0 ~ 255 수 표현 가능 - 1Byte(2^8) - 128 ~ + 127 또는 0 ~ 255 수 표현 가능 |
SMALLINT(n) | 정수형 데이터 타입 | - 2 Byte(2^16) - 32,768 ~ 32,167 또는 0 ~ 65536수 표현 가능 |
MEDIUMINT(n) | 정수형 데이터 타입 | - 3 Byte - 8,388,608 ~ 8,388,607 또는 0 ~ 16,777,215 수 표현 가능 |
INT(n) | 정수형 데이터 타입 | - 4 Byte - 2,147,483,648 ~ 2,147,483,647 또는 0 4,294,967,295 수 표현 가능 |
BIGINT(n) | 정수형 데이터 타입(LONG) | - 8 byte - 2^64 - 1 표현 가능(무한 수 표현 가능이라고도 함) |
DECIMAL(m, d) | - 고정 소수형 데이터 타입고정(길이+1 byte) - 화폐 데이터와 같이 데이터의 정확도를 요하는 경우에 주로 사용 - M의 최대값은 65, D는 소수 자릿수이며 0이면 소수점 가지지 않음 |
- 소수점을 사용한 형태 - Default: m ⇒ 10 |
FLOAT(n) | 부동 소수형 데이터 타입 | - 4 byte - 부동 소수점을 사용한 형태 |
Type | 정의 | 길이 |
CHAR(n) | - 고정 길이 데이터 타입 - 지정된 길이보다 짧은 데이터 입력 시 나머지 길이는 공백으로 채워짐 - 검색시, PAD_CHAR_TO_FULL_LENGTH 모드를 설정하지 않으면 공백은 제거됨 |
0 ~ 255 (byte) |
VACHAR(n) | - 가변 길이 데이터 타입 - 지정된 길이보다 짧은 데이터 입력시 공백으로 채우지 않음 -저장시 1-byte 혹은 2-byte 길이 Prefix 데이터를 저장. 이 Prefix 데이터는 값의 바이트 수에 대한 정보를 담는다.(https://dev.mysql.com/doc/refman/8.0/en/char.html) |
0 ~ 65,535 (byte) |
TINYTEXT(n) | - 문자열 데이터 타입(최대 255 byte) - TINYBLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장) https://dev.mysql.com/doc/refman/8.0/en/blob.html |
0 ~ 255 (byte) |
TEXT(n) | - 문자열 데이터 타입(최대 65,535 byte) - BLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장) |
0 ~ 65,535 (byte) |
MEDIUMTEXT(n) | - 문자열 데이터 타입(최대 16,777,215 byte) - MEDIRMBLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장) |
0 ~ 16,777,215 (byte) |
LONGTEXT(n) | - 문자열 데이터 타입(최대 4,294,967,295 byte) - LONGBLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장) |
0 ~ 4,294,967,295 (byte) |