수직 분할

자주 읽는 컬럼과 무거운 컬럼을 분리한다

목록 화면은 제목과 작성일만 자주 읽고, 본문·이미지·JSON은 상세 화면에서만 읽는다. 이렇게 두 테이블로 나누면 일반 목록 조회의 입출력이 줄어든다.

목록 조회

작은 컬럼만 자주 읽는다

ID 제목 작성일

목록 화면의 기본 경로는 얇고 빠르게 유지한다.

무거운 값

본문과 부가 데이터는 드물게 읽는다

본문 이미지 JSON

상세 화면이 아니면 읽지 않는 값은 기본 테이블에 함께 둘 필요가 적다.

1:1 분리

같은 ID로 다시 붙일 수 있게 나눈다

기본 테이블은 얇게, 확장 테이블은 필요할 때만 조인한다.

분할 전

한 행에 자주 읽는 값과 큰 값이 섞인다

게시글_전체
ID제목작성일본문메타데이터
P100인덱스 설계2026-05-01긴 본문큰 JSON
P101정규화 기준2026-05-02긴 본문큰 JSON

목록만 볼 때도 큰 컬럼이 같은 행 폭을 차지해 페이지 캐시와 전송량을 압박한다.

분할 후

핫 컬럼은 기본 테이블, 콜드 컬럼은 확장 테이블

게시글
컬럼역할
ID기본키
제목목록 조회
작성일정렬·필터
게시글_본문
컬럼역할
게시글ID기본키이자 외래키
본문상세 조회
메타데이터필요할 때 읽음
1
목록 게시글 테이블만 읽어 행 폭과 입출력을 줄인다.
2
상세 상세 화면에서만 게시글_본문을 1:1 조인한다.
3
주의 항상 같이 읽는 컬럼까지 나누면 조인 비용만 늘어난다.

기준: 수직 분할은 정규화 규칙이 아니라 물리 설계 선택이다. 읽기 패턴과 컬럼 크기가 분리 이득을 만들 때만 적용한다.