CONTENTS
목차
읽음 표시는 직접 선택하며 자동 완료되지 않습니다.
- 01DB 아키텍처 한눈에 - 인스턴스·버퍼 캐시·로그와 I/O 흐름
서버 프로세스와 메모리 구조, 버퍼 캐시·로그 버퍼·데이터 파일, 커밋 때 일어나는 일, 읽기 한 번이 디스크까지 가는 경로 그림
- 02SQL 처리 과정 - 파싱·최적화·실행과 바인드 변수
소프트 파싱과 하드 파싱, 라이브러리 캐시, 바인드 변수를 써야 하는 이유와 바인드 피킹, 리터럴 SQL 이 만드는 문제
- 03블록 단위 I/O - 논리 읽기와 물리 읽기
블록·익스텐트·세그먼트, 싱글/멀티 블록 I/O, 논리 읽기(consistent gets) 가 튜닝 지표인 이유, 버퍼 캐시 적중률의 함정
- 04인덱스 구조 - B*Tree 와 클러스터링 팩터
루트·브랜치·리프, ROWID, 인덱스 탐색 비용 계산, 클러스터링 팩터가 테이블 액세스 비용에 미치는 영향
- 05인덱스 스캔 방식 - Range·Unique·Full·Fast Full·Skip Scan
각 스캔이 선택되는 조건과 실행계획 표기, 인덱스를 못 쓰는 조건(컬럼 가공·형변환·부정 조건·LIKE 앞 %), 비교표
- 06인덱스 설계 기초 - 결합 인덱스 컬럼 순서 정하기
등치 조건 먼저·범위 조건 나중, 선두 컬럼과 액세스/필터 조건 구분, 인덱스 개수와 DML 부하의 균형
- 07실행계획 읽기 - 연산 순서·Rows·Cost 해석
들여쓰기로 순서 읽기, 예상 Rows 와 실제 Rows 비교(A-Rows), Predicate Information, MySQL EXPLAIN 과의 대응표
- 08조인 방식 기초 - NL·소트 머지·해시 조인의 동작
세 방식의 동작 그림, 각각 유리한 상황, 조인 순서가 성능을 가르는 이유, 판단표
- 09옵티마이저와 통계 - 선택도·카디널리티·히스토그램
비용 기반 옵티마이저, 통계 정보 항목, 선택도 계산 예, 히스토그램이 필요한 분포, 통계가 틀렸을 때 생기는 일
- 10트랜잭션과 Lock - 읽기 일관성과 동시성
MVCC 와 Undo, 격리수준별 현상, 행 Lock 과 대기, 교착 상태 재현과 예방, Oracle 과 MySQL(InnoDB) 차이표
- 11성능을 생각하는 SQL 작성 습관
부분범위 처리, 불필요한 정렬·DISTINCT 줄이기, EXISTS 와 IN 선택, 스칼라 서브쿼리 반복 호출 비용, 함수 호출 최소화
- 12실행계획 해석 연습 - 자체 문제 20선
실행계획을 보고 순서·조인 방식·병목을 찾는 자체 제작 문제 20개와 해설(기출 원문 사용 금지), 유형별 체크리스트 표
이 책은 Devin.KR 원고를 참조합니다. 원고의 원래 주소와 저작자 표기를 유지하며 같은 글을 다시 등록하지 않습니다. 수정된 원고는 읽기 화면에서 재검수 상태를 확인할 수 있습니다.