inblog logo
|
DailyCoding
    RDBMS

    6. 데이터베이스의 물리 구조

    박은서's avatar
    박은서
    Apr 24, 2026
    6. 데이터베이스의 물리 구조
    Contents
    1. DB 물리구조1️⃣ 저장 구조의 핵심 개념2️⃣ 저장 계층 구조3️⃣ RowID (물리 주소 개념)4️⃣ 데이터 저장 방식 (Heap 구조)5️⃣ 인덱스(Index)의 필요성6️⃣ 디스크 I/O와 성능7️⃣ 필기8️⃣ 필기 내용에서 반드시 교정해야 할 포인트9️⃣ 한 줄 정리 (시험용 핵심)🔟 그림으로 이해하기

    1. DB 물리구조

    1️⃣ 저장 구조의 핵심 개념

    1) 디스크 기반 저장

    • DB는 메모리가 아니라 디스크(HDD/SSD)에 데이터를 저장
    • 성능의 핵심은 CPU가 아니라 디스크 I/O
    ➡️ 결론
    • 디스크 접근 횟수 = 성능
    • 따라서 물리구조 이해는 곧 성능 이해

    2) 블록 단위 I/O

    • DB는 데이터를 행(Row)이 아니라 블록(Block) 단위로 읽고 쓴다
    • 블록 = DB I/O의 최소 단위 (보통 4KB ~ 16KB)
    ➡️ 중요한 착각 깨기
    • ❌ “행 하나 조회하면 행만 읽는다”
    • ✅ “행이 포함된 블록 전체를 읽는다”

    2️⃣ 저장 계층 구조

    1) 전체 계층 구조

    디스크 → 테이블스페이스 → 세그먼트 → 익스텐트 → 블록 → 행(Row)

    2) 블록 (Block)

    • 실제 데이터가 저장되는 최소 물리 단위
    • 여러 개의 행이 하나의 블록에 들어감
    • 특징
      • 하나의 블록을 읽으면 여러 행을 같이 가져옴
      • 그래서 공간 배치가 중요

    3) 익스텐트 (Extent)

    • 연속된 블록 묶음
    • 일정 크기로 할당됨
    • 이유
      • 블록을 하나씩 할당하면 비효율적 → 여러 개를 묶어서 관리

    4) 세그먼트 (Segment)

    • 테이블이나 인덱스 같은 객체가 사용하는 공간
    • 여러 익스텐트로 구성됨
    • 예시
      • 테이블 세그먼트
      • 인덱스 세그먼트

    5) 테이블 (Table)

    • 행(Row)의 집합
    • 물리적으로는 세그먼트 단위로 디스크에 존재

    3️⃣ RowID (물리 주소 개념)

    1) RowID란?

    • 행의 물리적 위치 정보
    • DB 내부에서 특정 행을 빠르게 찾기 위한 주소

    2) 구성 개념

    • 파일 번호
    • 블록 번호
    • 행 번호
    RowID = (파일 + 블록 + 행 위치)

    3) 왜 중요한가?

    • 인덱스는 실제 데이터를 저장하지 않고 RowID를 저장해서 빠르게 접근

    4️⃣ 데이터 저장 방식 (Heap 구조)

    1) 기본 저장 방식

    • 테이블은 기본적으로 순서 없이 저장 (Heap 구조)
    • 특징
      • INSERT 순서대로 쌓임
      • 정렬 보장 없음

    2) 문제점

    • 특정 데이터를 찾을 때 전체 스캔 (Full Scan) 발생

    5️⃣ 인덱스(Index)의 필요성

    1) 인덱스 역할

    • 데이터를 빠르게 찾기 위한 구조
    • 일종의 정렬된 탐색용 자료구조

    2) 동작 방식

    1. 인덱스에서 값 찾음
    1. RowID 확인
    1. 실제 데이터 블록 접근

    3) 핵심 효과

    • Full Scan → Index Scan으로 변경
    • 디스크 I/O 횟수 감소

    6️⃣ 디스크 I/O와 성능

    1) HDD 기준 병목

    • Seek Time (헤드 이동) ← 가장 느림
    • Rotation Delay
    • Transfer Time

    2) 성능 핵심

    • 랜덤 접근 많을수록 느림
    • 블록 접근 횟수 줄이는 것이 핵심

    7️⃣ 필기

    notion image

    8️⃣ 필기 내용에서 반드시 교정해야 할 포인트

    1) “행 단위 I/O”라고 생각하면 틀림

    • 반드시 블록 단위 I/O

    2) “정렬 안 되어 있으면 인덱스 필요”

    • 맞지만 불완전한 이해
    👉 정확한 표현
    • Heap 구조는 탐색이 느리기 때문에 인덱스가 필요

    3) “인덱스 = 데이터 저장”

    • ❌ 틀림
    • ✅ 인덱스는 RowID(주소)를 저장

    9️⃣ 한 줄 정리 (시험용 핵심)

    • DB는 블록 단위로 디스크에 저장
    • 테이블은 Heap 구조로 비정렬 저장
    • 인덱스는 RowID를 이용해 탐색 성능을 개선
    • 결국 성능은 디스크 I/O 횟수에 의해 결정됨

    🔟 그림으로 이해하기

    notion image
    Share article
    Contents
    1. DB 물리구조1️⃣ 저장 구조의 핵심 개념2️⃣ 저장 계층 구조3️⃣ RowID (물리 주소 개념)4️⃣ 데이터 저장 방식 (Heap 구조)5️⃣ 인덱스(Index)의 필요성6️⃣ 디스크 I/O와 성능7️⃣ 필기8️⃣ 필기 내용에서 반드시 교정해야 할 포인트9️⃣ 한 줄 정리 (시험용 핵심)🔟 그림으로 이해하기

    DailyCoding

    RSS·Powered by Inblog