logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

SQL TUNER for PostgreSQL

SQL TUNER for PostgreSQL

(기본원리편)

유일환 (지은이)
DBian(디비안)
39,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
37,050원 -5% 0원
1,950원
35,100원 >
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

SQL TUNER for PostgreSQL
eBook 미리보기

책 정보

· 제목 : SQL TUNER for PostgreSQL (기본원리편)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 데이터베이스 프로그래밍 > MySQL
· ISBN : 9791191941135
· 쪽수 : 460쪽
· 출판일 : 2026-03-01

책 소개

SQL 튜닝의 기본 원리를 심도 있게 다루는 책이다. 원리를 중심에 두고, 그 원리가 실제로 어떻게 작동하는지 예제와 실행계획, 충실한 설명과 그림을 통해 하나씩 검증하듯 정리했다.
<SQL TUNER for PostgreSQL 기본원리편>은 SQL 성능 문제를 ‘빠른 처방’이 아니라 ‘확실한 이해’로 해결하도록 이끄는 책입니다. 단순히 방법을 나열하지 않고, 성능이 흔들리는 지점을 기본부터 정리한 뒤 예제와 실행 결과, 그림을 통해 독자가 직접 확인하며 따라오게 구성했습니다. 인덱스, 실행 계획 해석, 조인 부하, 트랜잭션 대기, VACUUM까지 실무에서 반복되는 핵심 주제를 다루고 있습니다.
이 원고에서 특히 인상적인 점은 저자의 집필 태도입니다. 저자는 ‘그럴듯하지만 틀린 설명’을 가장 경계하며, 문장 하나가 오해를 만들지 않는지, 예제가 과장되거나 빈틈이 없는지, 설명의 순서가 독자의 사고 흐름과 맞는지까지 끝까지 점검했습니다. 같은 내용을 여러 번 다시 풀어 쓰고, 표현을 깎고, 예제를 재검증하는 과정이 누적되며, 이 책은 ‘알려주는 책’이 아니라 검증 가능한 기준을 남기는 책이 되었습니다.
결과적으로 이 책은 특정 기법을 외우게 하기보다, 성능 문제를 마주했을 때 무엇을 먼저 확인하고, 무엇을 의심하며, 어떤 선택을 피해야 하는지를 스스로 정리할 수 있게 합니다. 제대로 배우고, 오래 써먹을 수 있는 SQL 성능의 기본기를 찾는 독자에게 가장 현실적인 안내서가 될 것입니다.

목차

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. 매뉴얼 커밋과 베큠

저자소개

유일환 (지은이)    정보 더보기
서경대학교에서 컴퓨터공학을 전공하고, 2001년부터 개발자로 커리어를 시작했다. 2005년부터 2017년까지는 중국 삼성전자 판매 법인에서 DA(Data Architecture) 업무를 맡아, 판매·유통·데이터 분석 등 다양한 영역의 데이터베이스를 설계하고 수많은 배치 프로그램과 핵심 SQL을 개발·튜닝했다. 2018년부터는 국내 여러 기업에서 다양한 DBMS의 SQL 튜닝과 데이터 아키텍처 관련 프로젝트를 수행하고 있다. 이전 저서로는 <SQL BOOSTER>와 <평생 필요한 데이터 분석>, <SQL STARTER>가 있으며 대한민국이 데이터 강국이 되기를 바라는 마음으로, 지금도 꾸준히 기술을 전파하고 있다.
펼치기

책속에서



추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책