테마
데이터 타입
칼럼의 데이터 타입은 값을 몇 바이트에 어떤 규칙으로 저장하고 비교할지 정한다. 타입을 잘못 고르면 공간이 낭비되고 비교 결과가 예상과 달라진다. 나중에 칼럼 타입을 바꾸면 저장 형식이 달라져 테이블 전체를 새로 복사해야 할 수 있다. 그래서 처음 설계할 때 기준을 알고 고르는 것이 이 대주제의 목표다.
학습 순서
- 문자열 타입과 문자 집합 — CHAR와 VARCHAR, 문자 집합(character set)과 콜레이션(collation), VARCHAR 길이를 늘릴 때 길이 바이트가 1개에서 2개로 바뀌어 테이블을 복사하게 되는 255바이트 경계 (면접 비중: 중간)
- 숫자·날짜 타입과 AUTO_INCREMENT — 정수 범위와 표시 폭(display width), 부동 소수점(floating point)과 DECIMAL, DATETIME과 TIMESTAMP (면접 비중: 중간)
- 숫자·날짜 타입과 AUTO_INCREMENT 2 — 여러 INSERT가 동시에 번호를 받을 때의 AUTO_INCREMENT 잠금 모드, 번호의 빈틈, 재시작 후 카운터 (면접 비중: 중간)
- JSON·ENUM·TEXT와 생성 칼럼 — JSON 저장 방식과 부분 업데이트, 값을 내부 번호로 저장하는 ENUM과 SET의 함정 (면접 비중: 낮음)
- JSON·ENUM·TEXT와 생성 칼럼 2 — TEXT와 BLOB(Binary Large Object, 대용량 바이너리 객체)의 오프 페이지(off-page) 저장과 제약, 생성 칼럼(generated column) (면접 비중: 낮음)
