본문내용 바로가기
무료배송 소득공제

개발자를 위한 인덱스 생성과 SQL 작성 노하우 머릿속에 그려지는 인덱스 생성도 | 성능과 관리를 한 번에 잡는 공정쿼리

이병국 지음 | 김기창 감수 | 글봄 | 2018년 06월 15일 출간
  • 정가 : 32,000원
    판매가 : 28,800 [10%↓ 3,200원 할인]
  • 통합포인트 :
    [기본적립] 1,600원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 3만원 이상 구매 시 2~4% 추가적립
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 도서상태 : 인터넷주문불가
상품상세정보
ISBN 9788996560098(899656009X)
쪽수 404쪽
크기 190 * 250 mm 판형알림

책소개

이 책이 속한 분야

『개발자를 위한 인덱스 생성과 SQL 작성 노하우』

- 개발 현장에서 바로 통하는 인덱스 생성 및 쿼리 작성 노하우 제시
- 관리를 쉽게 하고 개발 생산성을 끌어올리는 쿼리 작성의 정석 ‘공정쿼리’
- 이론과 개념을 뛰어넘는 경험과 검증 기반의 DB 실무 노하우 전달
- 기 초 모델링 개념을 녹여낸 실무 중심의 SQLP, SQLD 준비서
- DBGuide.net 최고 인기 연재를 책으로
- 비유와 이야기로 풀어내는 명쾌한 접근, 쿼리작성 문제로 재미있게 공부
- 개발자와 DB 전문가가 함께 볼 수 있는 DB 실무 가이드 북

개발자 입장에서 DB 인덱스 처리와 쿼리 작성 노하우를 명쾌하게 알려주는 책.
데이터와 데이터베이스(DB)의 중요성이 어느 때보다 강조되고 있다. 얼마 전까지만 해도 DB에 대한 깊은 이해는 튜너나 DBA의 영역처럼 여겨졌다. 하지만 데이터 시대의 도래와 함께 상황은 달라졌다 .개발자도 DB에 대한 폭넓은 이해가 요구되고 있다. 이 추세를 반영하듯 DB 및 SQL 튜닝 소개서들이 속속 출간되고 있다.

개발자 입장에서 DB 인덱스 처리와 쿼리 작성 노하우를 제대로 풀어낸, 볼 만한 책 한 권이 나왔다. 『개발자를 위한 인덱스 생성과 SQL 작성 노하우』가 바로 그 주인공. 이 책은 데이터 지식 포털인 DBgude.net에서 3년 이상 연재되면서 큰 인기를 모았던 내용을 재구성한 것이다.

저자소개

저자 : 이병국

저자 이병국
동아제약 전산실에서 개발 업무를 시작으로 프리랜서 개발자로 독립해 활동하던 중 DB와 인연을 맺게 됐다. 삼성생명 전산 운영팀에서 쿼리 성능을 개선하는 DB 튜닝과 IOA(Input-Output Analysis) 업무를 담당했다. 이때 사내 개발자 대상의 DB 접근 노하우와 SQL 튜닝 교육을 수차례에 걸쳐 하면서 실력을 인정 받았다. 이 경험을 바탕으로 데이터 지식 포털인 DBGuide.net에 「개발자를 위한 오라클 이야기」를 연재해 좋은 반응을 얻었다.

감수 : 김기창

감수자 김기창
위즈덤마인드 대표 컨설턴트. 데이터 모델링과 DA(Data Architecture) 컨설팅을 하고 있다. 풍부한 실전 경험을 바탕으로 데이터 모델링을 직접 수행하면서 DA 컨설팅을 하는 것이 장점이다. 저서로는 『데이터베이스 활용을 위한 SQL Server 2000』, 『관계형 데이터 모델링 프리미엄 가이드』, 『관계형 데이터 모델링 노트』가 있다.

목차

서문 ‘쉬운 것이 바른 것’
이 책의 특징과 구성

1회: PCTFREE, PCTUSED
물탱크 구조와 오라클의 블록 옵션 비교하기
- 약방의 감초: PCTFREE와 PCTUSED 블록 옵션
- PCTFREE 10%와 PCTUSED 40% 설정값 바꿔본 사람 있나요?
- 둘의 합이 100에 가까워서는 안 된다
- 맥가이버 병사의 순발력이 문제를 해결하다
- 고정관념에서 벗어나기를 바라며
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 1

2회: 인덱스
이산가족 찾기로 배우는 DB의 분류 원리
- KBS 이산가족 찾기 생방송
- 대형 할인매장의 전략
- ‘도둑은 분류를 좋아한다’
- 개미 세계의 분류
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 2

3회: 인덱스
인덱스는 분류, 물리적 분류와 논리적 분류
- 물리적 분류에서 논리적 분류로
- 거실의 책장 분류
- 라디오 방송국의 음반 분류
- 분류 대상과 분류 정보의 분리
- 물리적 분류와 논리적 분류
- 인덱스는 논리적 분류
- 지식은 그것을 필요로 하는 사람의 몫
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 3

4회: 인덱스
인덱스에 대한 오해와 진실
결혼인가, 화혼인가!
결합인덱스의 컬럼 순서 결정방법
추천하는 결합인덱스의 컬럼 순서
원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 4

5회: 인덱스
쉬운 것이 바른 것! 인덱스 컬럼 선정 기준
- 바른 것이 쉽다
- 성능 제고를 위해 우선 고려할 것, 인덱스
- 인덱스 대상 후보컬럼 선정 기준
- 분포도가 좋은 컬럼인가?
- 인덱스보다 풀스캔이 유리할 때
- 논리적 분포도로 판단할 때의 위험
- 특별한 물고기
- ORDER BY 절 컬럼도 인덱스 후보일 수 있다
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 5

6회: 인덱스
분류 본능을 활용하라 ‘인덱스 끝장리뷰’
- 인덱스 수는 적정해야 한다
- 인덱스는 위치정보와 순서정보로 구성됐다
- 조건절에 사용하는 인덱스와 조인절에 사용하는 인덱스
- 인덱스 생성/삭제 시 고려사항
- 결합인덱스의 컬럼 순서 결정방법
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 6

7회: 인덱스
누구도 알려주지 않았던 ‘오라클 인덱스 생성도’의 비밀?72
- 어머니의 심부름: 두부가게와 쌀가게
- 오라클의 RBO 방식과 CBO 방식
- 인덱스 생성도의 기본 규칙
- 인덱스 생성도에 대한 이해
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 7

8회: 쿼리
누구도 알려주지 않았던 SQL 작성의 규칙과 방법·89
- 공정무역과 공정여행, 공정쿼리
- 공정쿼리
- 나막사 주부의 심부름 메모지
- 나계획 주부의 심부름 메모지
- 공정쿼리, 반드시 이렇게 작성하라!
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 8

9화: 쿼리
퀴리 최적화와 튜닝을 한 번에! 공정쿼리 작성법·103
- 배낭여행 스마트앱 만들기
- 오라클 CBO 방식과 통계정보
- 테이블 접근 순서 규칙 1: 진입형 테이블을 결정하라(사원테이블 선택 접근 시)
- 테이블 접근 순서 규칙 2: OUTER JOIN보다 INNER JOIN을 우선하라
- 테이블 접근 순서 규칙 3: 연결 확장형보다는 연결 축소형 테이블을 우선하라
- 인덱스 생성도와 공정쿼리 재작성하기
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 9

10화: 쿼리
만능 쿼리와 한방 쿼리, DB는 집합적 사고로 접근해야
- 나쁜 사람이 세상을 발전시킨다?
- 심각한 만능 쿼리
- 핵심 조건절의 수만큼 쿼리를 분리해야
- 한방 쿼리에 대한 이해
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 10

11회: 튜닝, 옵티마이저
오라클 옵티마이저, CBO와 RBO 이해하기
- 어머니의 심부름: 두부가게와 쌀가게
- CBO 방식과 RBO 방식
- CBO 방식: 옵티마이저와 통계정보, 실행계획
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 11

12회: 쿼리, 쉬어가는 이야기
재미있는 DB 이야기 ‘60 갑자와 쿼리’
- 10천간과 12지지·127 | 60갑자에서 규칙 찾기
- 10천간과 12지지 그리고 오라클 쿼리
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 12

13회: 조인
그림으로 풀어보는 오라클의 조인 방식
- 택시 같은 Nested Loop Join
- 짝꿍 정해주기와 같은 Sort Merge Join
- 성씨 구역처럼 구분하는 Hash Join
- 오라클 조인 방식의 특징 비교
- 조인 방식과 조인 순서 결정하기
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 13

14회: 실행계획
쿼리를 작성한 후에는 실행계획을 확인하라·143
- 실행계획을 알고 있어야 하는 이유
- 실행계획을 늘 확인하자
- 오라클 옵티마이저의 실행계획과 개발자의 실행계획
- 바인드 변수와 하드 파싱
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 14

15회: 튜닝, 힌트절
놓치면 후회할 오라클 힌트절 7가지
- 힌트절로 옵티마이저의 실수 차단
- 접근 방법을 결정하는 힌트절: USE_NL과 USE_HASH
- 자원 사용을 결정하는 힌트절: INDEX, FULL, PARALLEL
- 배치 튜닝의 마법사 같은 힌트절 삼총사: USE_HASH, FULL, PARALLEL
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 15

16회: NULL
개발자들의 영원한 숙제 NULL 이야기·173
- 이길 수 있을 때 공격하라
- 쉬우면서 어려운 존재, NUL
- 개발자를 힘들게 하는 NULL
- NULL 회피 전략
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 16

17회: 튜닝, 힌트절
개발자를 위한 유용한 선물, GATHER_PLAN_STATISTICS 힌트절
- 호미, 무시할 수 없는 그 존재감
- GATHER_PLAN_STATISTICS, 무시할 수 없는 엄청난 존재감
- 튜닝을 위한 최고의 힌트절
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 17

18회: 튜닝
놓치기 아까운 오라클의 유용한 기능들
- COMMIT 이전의 상태로 되돌리는 기능 FLASHBACK
- 오라클에서 스케줄 작업 사용법
- SAMPLE 혹은 SAMPLE BLOCK을 이용한 SAMPLE SCAN
- 종을 횡으로 구현하는 함수 WM_CONCAT
- 횡을 종으로 구현하는 함수 REGEXP_SUBSTR
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 18

19회: DICTIONARY
오라클 딕셔너리 기반의 DB 툴 프로그램 ‘FreeSQL’
- 씨줄과 날줄·208 | 오라클 딕셔너리·209 오라클 딕셔너리를 이용한 DB 툴 개발
- 새로운 DB 프로그램 개발의 주인공은 바로 나
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 19

20회: DICTIONARY, 쉬어가는 이야기
이제는 말할 수 있다, 주식 자동매매 프로그램(상)
- 프로그래머의 길에서 벗어나다
- IMF! 구조조정! 주식! 새로운 길을 찾다
- 주식 자동매매 프로그램을 개발하다

21회: DICTIONARY, 쉬어가는 이야기
이제는 말할 수 있다, 주식 자동매매 프로그램(하)
- 공시·뉴스 수집 프로그램
- 공시·뉴스 분석 프로그램
- 주식 자동매매 프로그램
- 테이블 구성에 대한 이해
- API를 알면 보이는 것들

22회: 에러 메시지
개발자들이 자주 접하는 오라클 에러 메시지
- 김기사와 빅데이터
- ‘조선시대에도 빅데이터가 있었다’
- 오라클 에러 메시지 톱10
- 오라클 에러 메시지를 마무리하
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 22

23회: 함수, 쉬어가는 이야기
사라진 날짜를 찾아라, 오라클에서 달력 다루기
- 곶감 만들기에 도전하다
- 동양과 서양의 달력
- 사라진 날짜를 찾아라
- 그레고리력과 오라클 DB
- 그레고리력 규칙을 이용해 요일 구하기
- 달력 팝업 창 쿼리 만들기
- 스토리를 마무리하며
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 23

24회: 랜덤 함수
오라클 랜덤 함수와 사용자 정의 함수
- 오라클 랜덤 패키지 DBMS_RANDOM
- 문자열을 역순으로 리턴하는 REVERSE 함수
- 사용자 정의 함수를 만들어 쓰기
- 사용자 정의 함수 ISNUMERIC
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 24

25회: 공정쿼리
그림으로 배우는 ‘공정쿼리와 인덱스 생성도’
- 오라클 CBO 방식과 통계정보
- 장바구니 = 무엇을 + 어떻게
- 공정쿼리 = 무엇을 + 어떻게
- 인덱스 생성도에 대한 이해
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 25

26회: 오라클 파라미터
디폴트 세팅의 함정과 오라클 파라미터
- 디폴트 세팅의 영향
- 디폴트 세팅의 함정
- ‘사용자 설정은 의지의 설정’
- 오라클 파라미터의 이해
- 오라클의 주요 파라미터
- 무모한 도전과 경험 사이에서
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 26

27회: 쿼리, 쉬어가는 이야기
재미있는 DB 이야기, SQL로 구현하는 마방진
- 마방진은 현재 진행형
- 3차 마방진
- 4차 마방진
- 4차 슈퍼 마방진
- 3차 입체 마방진
- 기타 각종 마방진
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 27

28회: 블록
오라클 운반 최소 단위, 블록
- 오라클 블록에 대한 이해
- 오라클 블록의 크기와 OLTP & OLAP
- 오라클 블록과 Row Chaining & Row Migration
- 오라클 블록과 성능의 연관성
- 원리를 이해하고 논리로 풀어가는 쉬어가는 스토리 DB 문제 28

29회: 인공지능, 쉬어가는 이야기
데이터가 촉발한 인공지능과 그 새로운 도전
- 컴퓨터와 인간의 대결?
- 구글의 인공지능 알파고
- 인공지능·머신러닝·딥러닝
- 머신러닝
- 딥러닝

30회: 쉬어가는 이야기
DB 엔지니어의 계산 방식과 기계의 계산 방식
- ‘옥뮤다’ 택배 실종사건·320 두 번째 버스를 타자
- 인간의 계산 방식 vs. 기계의 계산 방식

31회: 튜닝, 페이징
페이징 처리에 대한 이해
- 프로그램 페이징 처리와 서버 페이징 처리
- 전체 범위 페이징 처리와 부분 범위 페이징 처리
- MySQL의 LIMIT와 오라클의 ROW_NUMBER
- 최고의 페이징 처리와 최적의 페이징 처리

32회: 튜닝, 쿼리
보기 좋은 떡이 먹기도 좋다, 좋은 쿼리 좋은 성능
- 무질서와 질서
- 옵티마이저가 동일한 쿼리로 인식하도록 작성
- 표현 방식이 다르면 다른 SQL 문으로 인식

33회: 튜닝, 테이블 분할
성능 개선을 위한 테이블 수직분할과 수평분할
- 테이블 분할을 알아야 하는 이유
- I/O 성능 개선을 위한 수직분할
- 처리 성능 개선을 위한 수평분할
- 수직분할과 수평분할의 결정 기준

34회: 튜닝, 채번
성능 제고를 위한 채번 이해와 방식별 장단점 비교
- 채번에 대한 이해
- 채번 테이블을 이용하는 방식
- 테이블에서 최댓값을 이용하는 방식
- 시퀀스를 이용하는 방식
- 채번 방식에 대한 장단점 비교

35회: 튜닝
개발자를 위한 튜닝실전 1편: 생명체처럼 다뤄라
- 인덱스, 필요한 데이터를 빨리 찾기
- GROUOP BY 절 사용과 성능 이슈

36회: 튜닝
개발자를 위한 튜닝실전 2편: 줄이고 또 줄여라
- 줄이고 줄이고 또 줄이자
- 홍길동을 찾아라

37회: 튜닝
개발자를 위한 튜닝실전 3편: 인덱스를 사용하지 않을 때 대처법?361
- 인덱스를 사용하지 않는 경우 1: 컬럼 변형 시
- 인덱스를 사용하지 않는 경우 2: 타입 변형 시
- 인덱스를 사용하지 않는 경우 3: NULL 사용 시
- 인덱스를 사용하지 않는 경우 4: 부정형 사용 시
- 인덱스를 사용하지 않는 경우 5: LIKE 사용 시
- 인덱스를 사용하지 않는 경우 6: 인덱스 경합 발생 시
- 인덱스를 회피하는 방법

스토리 DB 문제 풀이와 정답
찾아보기

추천사

김기창(데이터 모델러)

개발자의 가치를 높일 수 있는 책
이 책의 장점은 쉽게 쓰였다는 점입니다. DB에 익숙하지 않은 개발자에게 '강추하는' 이유입니다. 이 책의 진정한 장점은 '인덱스 생성도'입니다. 인덱스 생성도를 따라 책을 읽어가다 보면 ... 더보기

기민용(gurubee.net 운영진)

비유 방식으로 어려운 개념을 쉽게 이해하도록 도와줘
쉽고 새롭게 알려주는 책. 경험이 많지 않은 개발자들이 늘 혼란스러워하는 인덱스 개념을 '인덱스 생성도'라는 그림으로 쉽게 소개한 점이 눈길을 끈다. 생활 속 경험을 토대... 더보기

출판사 서평

'장보기를 잘하는 개발자가 쿼리도 잘 짠다'
『개발자를 위한 인덱스 생성과 SQL 작성 노하우』는 철저하게 개발자 중심으로 접근한 튜닝 가이드다. DB 전문가 대상의 이론이나 개념 중심의 튜닝에서 벗어나 코딩 시 헷갈리는 인덱스 지점을 어떻게 자고, 실행계획(plan) 적용 방법을 그림과 비유로 흥미롭게 소개한다.

저자는 책에서 '개발자의 관심은 DB 이론이나 개념을 아는 데 있지 않다. 인덱스 포인트를 파악해 쿼리를 짜면 DB 속도는 물론 개발 생산성과 관리까지 한 번에 잡을 수 있다'고 소개하고 있다. 또한 '인덱스 포인... 더보기

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

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

이 분야의 베스트

  • 길벗알앤디
    27,900원
  • 이동욱
    19,800원
  • 윤인성
    16,200원
  • 이남호
    23,310원
  • 길벗R&D
    17,100원
더보기+

이 분야의 신간

  • 길벗알앤디
    27,900원
  • 다카라지마사
    9,900원
  • 길벗R&D
    32,400원
  • 테런스 J. 세즈노스키
    22,500원
  • 이동욱
    19,800원
더보기+

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품