

DB는 항상 블록 단위 I/O를 한다.
Row 1개 조회 요청
→ 블록 하나 통째로 메모리에 올림
→ 그 안에 다른 Row들도 같이 올라옴
INSERT 많으면 → 익스텐트 계속 추가
삭제 많아도 → 익스텐트는 줄지 않음
세그먼트 = 블록 +_ 익스텐트
PK를 랜덤 UUID로 쓰면 왜 망하는지!
❓ “UNDO / REDO도 창고 비유로 설명해줘”
❓ “왜 DELETE보다 TRUNCATE가 빠른지”
👉 WHERE / ORDER BY 때문에 테이블의 모든 블록을 먼저 메모리에 올리지는 않는다.
👉 항상 “필요한 블록만, 가능한 적게” 읽으려고 한다.
테이블스페이스 = 창고
세그먼트 = 선반 묶음(한 테이블 전용 구역)
익스텐트 = 선반 한 줄 묶음
블록 = 박스
행(Row) = 박스 안의 사과/딸기
<aside> 💡
Segment는 여러 선반들의 집합이 될 수 있나?
</aside>