• 베스트
  • 소득공제
  • 무료배송

SQL TUNER for PostgreSQL(기본원리편)

  • 유일환
  • 디비안
  • 2026년 03월 01일
사용자 평점
0리뷰 0개
10%35,10039,000원
적립금
1,950원 (5% 적립)
추가 적립 안내
  • 5만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

  • 10만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

    정가제FREE(상품/사은품) 금액이
    5,000원 이상이면 5,000원 추가적립

회원가입 시 적립금 즉시 지급!

배송비
무료 (해외배송의 경우 지역에 따라 상이)

배송안내

배송비 안내
  • 1만원 이상 주문 시 무료배송 입니다.
  • 주문하신 상품을 해외로 배송 하시는 경우에는 별도의 항공료 가 부과됩니다
서울특별시 강남구 강남대로 542(논현동, 영풍빌딩)
주문 수량 변경시 안내

[주문/배송] 주문 수량 변경 시 안내

주문 수량 변경 시,배송일정이 변경될 수 있으니 반드시 확인해 주시기 바랍니다.
(고객센터 1544-9020)

지금 주문하면 9/9(수) 출고 가능
택배보다 빠른, 나우드림
상품 규격 정보
상품상세정보
ISBNISBN-13 : 9791191941135
쪽수460쪽
크기기타 규격
제품구성단행본
이 책이 속한 분야
  • 컴퓨터/IT > 시스템공학
관련 이벤트

AI추천 이유

책 소개

SQL 성능 문제는요령이 아니라원리싸움입니다.

이 책은 당장 써먹을 수 있는 단편적인 팁 모음이 아닙니다. 만약 SQL 성능 문제에 대한 즉각적인 해법만을 찾는다면 이 책은 적합하지 않습니다.

이 책은 SQL 튜닝의 기본 원리를 심도 있게 다룹니다. 원리를 중심에 두고, 그 원리가 실제로 어떻게 작동하는지 예제와 실행계획, 충실한 설명과 그림을 통해 하나씩 검증하듯 정리했습니다. 원리를 정확히 이해하고 경험을 쌓아가면, 실무에서 어떤 형태의 성능 문제를 만나더라도 스스로 원인을 찾고 해법을 도출할 수 있습니다.

또한 이 책에서 다루는 기본 원리는 PostgreSQL에만 국한되지 않습니다. DBMS가 달라져도 성능을 좌우하는 핵심 메커니즘은 본질적으로 유사하므로, 이 책에서 익힌 사고방식과 접근법은 다른 환경에서도 그대로 적용할 수 있습니다

목차

[목 차]
  

CHAPTER 01 성능을 위한 기본 지식

1-1. SQL 튜닝이란

1-1-1. SQL 튜닝 사례

1-2. 실습환경 구성하기

1-2-1. ERD

1-2-2. 실습환경 구성하기

1-3. SQL 튜닝의 주요 요소

1-3-1. Index

1-3-2. 비효율 SQL 변경

1-3-3. 힌트 사용

1-3-4. SQL 성능에 영향을 주는 기타 요소

1-4. SQL 처리 과정

1-4-1. Parsing

1-4-2. Optimization

1-4-3. Execution

1-4-4. Fetch

1-5. 옵티마이저와 실행계획

1-5-1. 옵티마이저

1-5-2. 실행계획

1-5-3. 옵티마이저와 SQL 튜닝

1-5-4. 비용 기반 옵티마이저

1-5-5. 옵티마이저가 말하길, 나도 힘들다.

1-6. 통계

1-6-1. 테이블 통계(pg_class)

1-6-2. 컬럼 통계(pg_stats)

1-6-3. 통계는 언제 만들어지는가?

1-7. I/O

1-7-1. I/O

1-7-2. 블록

1-7-3. 데이터 블록과 인덱스 블록

1-7-4. 메모리 vs. 디스크

1-7-5. 메모리 I/O vs. 디스크 I/O

1-7-6. Shared Buffer

 

CHAPTER 02 실행계획

2-1. 실행계획

2-1-1. EXPLAIN

2-1-2. 오퍼레이션

2-1-3. 실행계획 트리

2-1-4. Child First

2-1-5. 힌트의 기본 사용법

2-2. EXPLAIN 옵션

2-2-1. EXPLAIN ANALYZE

2-2-2. 추가 옵션

2-2-3. BUFFERS

2-2-4. actual time 해석

 

CHAPTER 03 인덱스

3-1. 인덱스 개념 잡기

3-1-1. 인덱스란?

3-1-2. Seq Scan

3-1-3. 인덱스로 Seq Scan 비효율 개선하기

3-1-4. 인덱스 개념 잡기

3-2. 테이블과 인덱스 구조

3-2-1. 테이블 구조

3-2-2. 인덱스 구조

3-2-3. 트리 구조의 데이터 탐색

3-2-4. 인덱스 구조는 어떻게 만들어지는가?

3-2-5. 인덱스의 실제 크기

3-2-6. 인덱스 높이와 균형

3-3. 테이블에서 데이터를 찾아내는 방법

3-3-1. 테이블 전체를 스캔해 찾기

3-3-2. 인덱스를 활용해 찾기

3-3-3. 레코드의 물리적 주소를 활용해 찾기

3-3-4. 방법에 따른 실제 I/O 검증해 보기

3-4. 인덱스 스캔 심화

3-4-1. 인덱스 시각화

3-4-2. 인덱스 스캔 3단계

3-4-3. 인덱스 처리 조건과 테이블 처리 조건

3-4-4. 테이블 접근이 없는 인덱스 스캔

3-4-5. 테이블 접근과 성능

3-4-6. 어떤 인덱스를 사용할까?

3-4-7. 인덱스 분류

 

CHAPTER 04 PostgreSQL의 인덱스 스캔

4-1. Index Scan

4-1-1. 동등 조건

4-1-2. 범위 조건

4-1-3. Filter Rows Removed by Filter

4-2. Index Only Scan

4-2-1. Index Only Scan

4-2-2. Index Only Scan vs. Index Scan

4-2-3. Index Only Scan Heap Fetches

4-3. Bitmap Scan

4-3-1. Bitmap Index Scan & Bitmap Heap Scan

4-3-2. Bitmap Scan vs. Index Scan

4-4. Index Full Scan

4-4-1. Index Full Scan

4-4-2. Index Full Scan vs. Index Only Scan

 

CHAPTER 05 인덱스와 성능

5-1. 어느 컬럼에 인덱스를 만들 것인가?

5-1-1. ord_st

5-1-2. shop_id

5-1-3. pkup_dtm

5-1-4. 어느 컬럼에 인덱스를 만들 것인가?

5-2. 복합 인덱스

5-2-1. 단일 인덱스 vs. 복합 인덱스

5-2-2. 복합 인덱스

5-2-3. 복합 인덱스 컬럼 순서와 리프 블록

5-2-4. 복합 인덱스 검색키 결정 규칙

5-2-5. Index Filter

5-2-6. 복합 인덱스의 선두 조건 누락

5-2-7. 복합 인덱스 설계하기

5-3. 생각보다 까다로운 인덱스

5-3-1. 검색키와 스톱키가 없는 SQL

5-3-2. 주의가 필요한 날짜 컬럼

5-3-3. 언제까지 인덱스를 사용할 것인가?

5-3-4. 너무 많은 인덱스의 위험성

5-3-5. 중복된 인덱스

5-3-6. Prepared Statements Generic Plan

5-3-7. LIKE 패턴과 인덱스

5-4. 특별한 인덱스 기법

5-4-1. 커버링 인덱스

5-4-2. 부분 인덱스

5-4-3. CLUSTER

5-4-4. Bitmap Scan의 효율성

5-4-5. Function-based index

5-4-6. BitmapAnd

5-4-7. Index Skip Scan

 

CHAPTER 06 정렬과 집계

6-1. 정렬 부하

6-1-1. external merge

6-1-2. work mem quicksort

6-2. 정렬과 인덱스

6-2-1. No Sort

6-2-2. Backward Scan

6-2-3. LIMIT n

6-2-4. Sort 제거를 위한 인덱스

6-2-5. Sort 제거보다 WHERE 절에 집중

6-2-6. Incremental Sort

6-2-7. ORDER BY를 빼먹지 말자.

6-2-8. 정렬을 피할 수 없다.

6-3. 집계

6-3-1. GroupAggregate HashAggregate

6-3-2. GROUP BY 컬럼 최소화

6-3-3. LIMIT MIN/MAX

6-3-4. 변형된 컬럼의 MIN/MAX

6-3-5. LIMIT MIN/MAX를 위한 인덱스

 

CHAPTER 07 조인의 내부 처리 방식

7-1. NL 조인 이해하기

7-1-1. 조인의 내부 처리 방식

7-1-2. NL 조인

7-1-3. 드라이빙과 드리븐

7-1-4. NL 조인의 실행계획

7-2. 머지 조인 이해하기

7-2-1. 머지 조인

7-2-2. 머지 조인의 실행계획

7-3. 해시 조인 이해하기

7-3-1. 해시 조인

7-3-2. 빌드 입력과 프로브 입력

7-3-3. 해시 조인의 실행계획

7-4. 조인 힌트

7-4-1. 조인 알고리즘과 데이터 집합의 역할

7-4-2. 조인 힌트 사용법

7-4-3. Leading 힌트

7-4-4. 여러 테이블의 조인 힌트

 

CHAPTER 08 조인과 성능

8-1. NL 조인과 성능

8-1-1. NL 조인의 비효율

8-1-2. 드리븐 테이블의 인덱스

8-1-3. 드리븐 테이블의 필터 조건

8-1-4. 드라이빙 테이블의 인덱스

8-1-5. 드라이빙 집합 선택

8-1-6. 드리븐 테이블의 인덱스 컬럼 순서

8-1-7. 무조건 작은 집합을 드라이빙 할 것인가?

8-1-8. 여러 테이블의 NL 조인

8-1-9. 조인 조건의 Index Cond 확인

8-1-10. NL 조인의 인덱스 전략

8-2. 머지 조인과 성능

8-2-1. 머지 조인의 비효율

8-2-2. 머지 조인을 위한 인덱스

8-2-3. 머지 조인의 한계

8-3. 해시 조인과 성능

8-3-1. 대용량 조인에 탁월한 해시 조인

8-3-2. 해시 조인을 위한 인덱스

8-3-3. 빌드 입력 선택

8-3-4. 프로브 입력 최적화

8-3-5. 테이블 원래 크기만으로 조인 방식을 결정하면 안 된다.

8-3-6. 해시 조인은 동등 조인 조건이 필수

8-3-7. 조인 컬럼에 인덱스가 없다면 해시 조인

8-4. 조인과 성능

8-4-1. 인덱스 힌트만으로 조인 알고리즘 선택하기

8-4-2. 상황에 따른 인덱스 선택

8-4-3. 코드명 조회 - 스칼라 서브쿼리 vs. 조인

8-4-4. 조인 횟수를 줄이자

8-4-5. 조인을 추가하자

8-4-6. 조인 튜닝 전략

 

CHAPTER 09 트랜잭션과 모니터링

9-1. 트랜잭션

9-1-1. 트랜잭션

9-1-2. 오토 커밋과 명시적 트랜잭션

9-1-3. xid

9-1-4. LOCK

9-2. 트랜잭션 테스트와 모니터링

9-2-1. 테스트 준비

9-2-2. pg_locks

9-2-3. 대기(wait) 상태

9-2-4. pg_stat_activity

9-2-5. 사라진 500

9-2-6. SELECT FOR UPDATE

9-2-7. CREATE INDEX CONCURRENTLY

 

CHAPTER 10 VACUUM

10-1. VACUUM을 왜 하는가?

10-1-1. Dead Tuple

10-1-2. Freeze

10-2. VACUUM

10-2-1. Autovacuum

10-2-2. 수동 VACUUM

10-3. VACUUM과 성능

10-3-1. UPDATE와 용량 변화

10-3-2. VACUUM과 성능

10-3-3. 데드 튜플 최소화 전략

10-3-4. 배치와 데드 튜플

10-3-5. 매뉴얼 커밋과 베큠

출판사 서평



SQL TUNER for PostgreSQL 기본원리편〉은 SQL 성능 문제를빠른 처방이 아니라확실한 이해로 해결하도록 이끄는 책입니다. 단순히 방법을 나열하지 않고, 성능이 흔들리는 지점을 기본부터 정리한 뒤 예제와 실행 결과, 그림을 통해 독자가 직접 확인하며 따라오게 구성했습니다. 인덱스, 실행 계획 해석, 조인 부하, 트랜잭션 대기, VACUUM까지 실무에서 반복되는 핵심 주제를 다루고 있습니다.

이 원고에서 특히 인상적인 점은 저자의 집필 태도입니다. 저자는그럴듯하지만 틀린 설명을 가장 경계하며, 문장 하나가 오해를 만들지 않는지, 예제가 과장되거나 빈틈이 없는지, 설명의 순서가 독자의 사고 흐름과 맞는지까지 끝까지 점검했습니다. 같은 내용을 여러 번 다시 풀어 쓰고, 표현을 깎고, 예제를 재검증하는 과정이 누적되며, 이 책은알려주는 책이 아니라 검증 가능한 기준을 남기는 책이 되었습니다.

결과적으로 이 책은 특정 기법을 외우게 하기보다, 성능 문제를 마주했을 때 무엇을 먼저 확인하고, 무엇을 의심하며, 어떤 선택을 피해야 하는지를 스스로 정리할 수 있게 합니다. 제대로 배우고, 오래 써먹을 수 있는 SQL 성능의 기본기를 찾는 독자에게 가장 현실적인 안내서가 될 것입니다.

저자 소개
저자 : 유일환
도서리뷰 (0)
이 책을 읽고 어떤 느낌을 받으셨나요? 리뷰를 남기고 다른 독자들과 함께 공유해보세요.

등록된 리뷰가 없습니다

첫번째 리뷰어가 되어주세요

교환/반품/환불
반품/교환방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
반품/교환 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

매장에서 사용할 수 있는 바코드가 있어요!