Java, IntelliJ/Spring
MySQL Datatype 데이터 타입
반응형
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
반응형
'Java, IntelliJ > Spring' 카테고리의 다른 글
JAVA 이미지 리사이징, 가로세로 크기 줄이기 (0) | 2021.08.24 |
---|---|
SPRING,JPA 원하는 값 내려주기 방법 모음 총 정리, Projection 방법 모음 (10) | 2021.08.01 |
Spring annotation 모음 (0) | 2021.07.19 |
Spring/ SpringBoot 개념 정리 (0) | 2021.07.19 |
JWT토큰이란, 장단점, 구현 (1) | 2021.07.14 |
댓글