Java, IntelliJ/Spring
MySQL Datatype 데이터 타입
고로케
2021. 7. 20. 11:17
반응형
MySQL에서 지원하는 데이터 형(MySQL DataTypes)
형태데이터형범위크기
숫자형 | TINYINT | -128 ~ 128 , 0 ~ 255 | 1 Byte |
SMALLINT | -32768 ~ 32767 , 0 ~ 65535 | 2 Byte | |
MEDIUMINT | -8388608 ~ 8388607, 0 ~ 16777215 | 3 Byte | |
INT, INTEGER | -2147483648 ~ 2147483647, 0 ~ 4294967295 | 4 Byte | |
BIGINT | -9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551615 |
8 Byte | |
FLOAT | -3.402823466E+38 ~ -1.175494351E-38 1.175494351E-38 ~ 3.402823466E+38 |
4 Byte | |
DOUBLE [PRECISION], REAL | 1.7976931348623157E+308 ~ -2.2250738585072014E-308 0 ~ 2.2250738585072014E-308 |
8 Byte | |
DECIMAL(M,D), NUMERIC(M,D) | 데이터 베이스 설정 및 시스템에 따라 다름 | 가변적 크기 | |
날자형 | DATE | '1000-01-01' ~ '9999-12-31' | 3 Byte |
TIME | '-838:59:59' ~ '838:59:59' | 3 Byte | |
DATETIME | '1000-01-01 00:00:00' ~ '9999-12-31 23:59:59' | 8 Byte | |
TIMESTAMP | '1970-01-01 00:00:01' ~ '2038-01-19 03:14:07' | 4 Byte | |
YEAR | 1901 ~ 2155 | 1 Byte | |
문자(열)형 | CHAR(M) | 1~ 255 개의 문자 | M <= 255 Byte |
BINARY(M) | 1 ~ 255 개의 문자 | M Byte | |
VARCHAR(M), VARBINARY(M) | 1 ~ 255 개의 문자 | M Byte | |
TINYBLOB, TINYTEXT | 최대 2^8 | 입력된 길이 만큼 | |
BLOB, TEXT | 최대 2^16 | 입력된 길이 만큼 | |
MEDIUMBLOB, MEDIUMTEXT | 최대 2^24 | 입력된 길이 만큼 | |
LONGBLOB, LONGTEXT | 최대 2^32 | 입력된 길이 만큼 | |
ENUM | 최대 65525 개 | 1 ~ 2 Byte | |
SET | 최대 64 개의 셋 | 1 ~ 8 Byte |
효율적인 테이블 설계 방법 요약
1. 저장할 데이터에 맞게 최대한 작은 데이터 타입을 사용해야 합니다.
2. 컬럼에서 DEFAULT NULL을 최대한 허용하지 마세요
3. 가변적인 데이터타입 보다 고정형의 데이터 타입을 선택하세요
4. PRIMARY KEY는 작은 데이터형으로 잡습니다. (AUTO_INCREMENT 최대한 사용)
5. 모든 데이터는 정규화를 꼭 해야 합니다.
6. 인덱스는 필요한 경우만 사용합니다.
데이터 타입을 참고하고 테이블 설계할 때 고려해야할 사항들을 체크해야겠다.
출처 https://yongji.tistory.com/23
반응형