Vertical Split

자주 읽는 열과 무거운 열을 다른 테이블로 나눈다

목록 화면은 제목·작성일처럼 작은 열을 반복해서 읽고, 본문·이미지·JSON은 상세 화면에서만 필요하다. 수직 분할은 같은 행의 열을 사용 패턴에 맞게 기본 테이블과 확장 테이블로 나누는 물리 설계다.

분할 전

목록 조회도 넓은 행을 훑는다

게시글_전체
ID 제목 작성일 본문 이미지 JSON
P100 인덱스 설계 2026-05-01 긴 본문 6MB 큰 JSON
P101 정규화 기준 2026-05-02 긴 본문 4MB 큰 JSON

목록에서 보이지 않는 큰 열까지 같은 행 폭에 묶이면 페이지 캐시와 전송량이 쉽게 커진다.

읽는 화면이 다르면
저장 위치도 나눈다
분할 후

핫 열은 기본 테이블에 남긴다

게시글
역할
게시글ID 기본키
제목·작성일 목록 조회
게시글ID 같은 키로 1:1 연결
게시글_본문
역할
게시글ID PK이자 FK
본문·이미지·JSON 상세에서만 읽음
1
목록 게시글 테이블만 읽어 행 폭과 입출력을 줄인다.
2
상세 본문이 필요할 때만 게시글_본문을 1:1 조인한다.
3
기준 정규화 규칙이 아니라 읽기 패턴과 열 크기로 결정한다.

주의: 항상 함께 읽는 열까지 나누면 조인 비용만 늘어난다. 자주 읽는 작은 열과 드물게 읽는 큰 열이 뚜렷하게 갈릴 때 적용한다.