간편결제, 신용카드 청구할인
카카오페이 3,000원
(카카오페이 5만원 이상 결제시, 12/1~12/31 기간 중 1회)
인터파크 롯데카드 5% (29,930원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (22,050원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (25,200원)
(최대할인 4만원 / 2만원 이상 결제)
Close

Real MariaDB

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 131
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
  • 저 : 이성욱
  • 출판사 : 위키북스
  • 발행 : 2014년 04월 18일
  • 쪽수 : 628
  • ISBN : 9788998139537
정가

35,000원

  • 31,500 (10%할인)

    1,750P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서

  • 상품권

AD

책소개

『Real MariaDB』는 MariaDB와 MySQL에 관심을 가지고 있는 독자들을 위한 책이다. MariaDB 10.0과 MySQL 5.6의 각 고유 기능과 공통 기능들을 비교 설명하는 방식으로 구성하여 MariaDB와 MySQL의 특성과 기능 차이를 이해할 수 있도록 했다. 서비스의 특성에 맞게 (MariaDB와 MySQL중에서) 적절한 솔루션을 선택하는 안목을 키우는데 도움을 준다.

출판사 서평

구글과 카카오에서 선택한 MariaDB의 모든 것을 분석해드립니다!
MariaDB 10.0과 MySQL의 5.6 최신 버전을 함께 배울 수 있습니다!


MySQL이 오픈 코어 방식의 상용화를 도입하면서 일부 기능들이 오픈 소스에서 누락되기 시작했는데, 다행히 MariaDB 서버가 그 자리를 조금씩 메워주고 있다. MySQL 엔터프라이즈 버전에만 사용 가능한 상용 기능들을 MariaDB를 통해서 무료로 사용할 수 있게 된 것이다. 또한 MariaDB 사용자도 많이 늘어나면서, 이제 MariaDB는 더는 미완성의 MySQL 변종이 아니라 MySQL 엔터프라이즈 버전과 경쟁하는 안정적인 오픈소스 DBMS가 된 것이다.

[Real MariaDB]는 MariaDB와 MySQL에 관심을 가지고 있는 독자들을 위해서, MariaDB 10.0과 MySQL 5.6의 각 고유 기능과 공통 기능들을 비교 설명하는 방식으로 구성했다. 여러분은 이 책을 통해서 MariaDB와 MySQL의 특성과 기능 차이를 이해하고, 서비스의 특성에 맞게 (MariaDB와 MySQL중에서) 적절한 솔루션을 선택하는 안목을 키울 수 있을 것이라 확신한다.

이 책에서 다루는 내용
- MariaDB와 MySQL과의 호환성
- MariaDB의 설치 및 마이그레이션
- 온라인 스키마 변경
- 실행 계획 분석
- MariaDB 10.0과 MySQL 5.6의 최적화
- MariaDB의 스토리지 엔진
- MariaDB의 부가 기능(스레드 풀 및 관리 진단 도구)
- XtraBackup 백업 도구
- MariaDB 10과 MySQL 5.6의 복제 (GTID와 멀티 소스 복제 그리고 멀티 스레드 슬레이브)

▣ 구글과 카카오에서 선택한 MariaDB의 모든 것을 분석해드립니다!
▣ MariaDB 10.0과 MySQL의 5.6 최신 버전을 함께 배울 수 있습니다!


MySQL이 오픈 코어 방식의 상용화를 도입하면서 일부 기능들이 오픈 소스에서 누락되기 시작했는데, 다행히 MariaDB 서버가 그 자리를 조금씩 메워주고 있다. MySQL 엔터프라이즈 버전에만 사용 가능한 상용 기능들을 MariaDB를 통해서 무료로 사용할 수 있게 된 것이다. 또한 MariaDB 사용자도 많이 늘어나면서, 이제 MariaDB는 더는 미완성의 MySQL 변종이 아니라 MySQL 엔터프라이즈 버전과 경쟁하는 안정적인 오픈소스 DBMS가 된 것이다.

『Real MariaDB』는 MariaDB와 MySQL에 관심을 가지고 있는 독자들을 위해서, MariaDB 10.0과 MySQL 5.6의 각 고유 기능과 공통 기능들을 비교 설명하는 방식으로 구성했다.

여러분은 이 책을 통해서 MariaDB와 MySQL의 특성과 기능 차이를 이해하고, 서비스의 특성에 맞게 (MariaDB와 MySQL중에서) 적절한 솔루션을 선택하는 안목을 키울 수 있을 것이라 확신한다.

★ 이 책에서 다루는 내용 ★

◎ MariaDB와 MySQL과의 호환성
◎ MariaDB의 설치 및 마이그레이션
◎ 온라인 스키마 변경
◎ 실행 계획 분석
◎ MariaDB 10.0과 MySQL 5.6의 최적화
◎ MariaDB의 스토리지 엔진
◎ MariaDB의 부가 기능(스레드 풀 및 관리 진단 도구)
◎ XtraBackup 백업 도구
◎ MariaDB 10과 MySQL 5.6의 복제 (GTID와 멀티 소스 복제 그리고 멀티 스레드 슬레이브)

★ 이 책에 관련된 내용이나 MariaDB, MySQL에 대한 기술 문의는 아래 Real MySQL 카페를 이용해 주세요.

목차

01장: MariaDB
1.1 MariaDB란?
1.2 MariaDB vs. MySQL
1.2.1 MariaDB와 MySQL 그리고 PerconaServer
1.2.2 공통점
1.2.3 차이점
1.2.3.1 라이선스
1.2.3.2 스토리지 엔진
1.2.3.3 기능
1.2.3.4 옵티마이저
1.2.4 버전별 호환성
1.2.5 성능 비교
1.2.6 MariaDB가 MySQL을 대체하게 될까?
1.2.7 MariaDB와 MySQL 선택

02장: 설치
2.1 다운로드
2.2 설치
2.2.1 윈도우 버전 설치
2.2.1.1 설치 프로그램(MSI)을 이용한 설치
2.2.1.2 압축(ZIP)된 MariaDB 설치
2.2.2 리눅스 버전 설치
2.2.2.1 RPM을 이용한 설치
2.2.2.2 압축(tar.gz)된 MariaDB 설치
2.3 업그레이드
2.3.1 MySQL에서 MariaDB로 업그레이드할 때 주의 사항
2.3.2 버전에 관계없이 가장 안전한 방법
2.3.3 MySQL 5.0이나 그 이전 버전에서 MariaDB 5.5로 업그레이드
2.3.4 MySQL 5.1에서 MariaDB 5.5로 업그레이드
2.3.5 MySQL 5.5에서 MariaDB 5.5로 업그레이드

03장: MariaDB 기동 및 쿼리 실행
3.1 서버 시작 및 종료
3.1.1 리눅스에서 MariaDB 서버의 시작과 종료
3.1.1.1 서비스로 등록된 경우
3.1.1.2 서비스로 등록되지 않은 경우
3.1.2 윈도우에서 MariaDB 서버의 시작과 종료
3.1.2.1 서비스로 등록된 경우
3.1.2.2 서비스로 등록되지 않은 경우
3.2 서버 로그인
3.2.1 서버 로그인 및 버전 확인
3.2.2 mysql 클라이언트 프로그램 옵션
3.2.2.1 안전 모드로 mysql 클라이언트 실행
3.2.2.2 --execute 옵션으로 mysql 클라이언트 실행
3.2.2.3 --batch 모드와 함께 --execute 옵션으로 mysql 클라이언트 실행
3.2.2.4 --batch 모드로 --skip-column-names와 함께 --execute 옵션으로 mysql 클라이언트 실행
3.3 데이터베이스 및 사용자 생성
3.3.1 MariaDB의 사용자 계정 인식과 권한
3.3.1.1 사용자의 식별
3.3.1.2 권한
3.3.1.3 권한의 부여
3.3.1.4 권한 그룹
3.3.2 MariaDB의 기본 사용자
3.3.3 MariaDB의 기본 데이터베이스
3.3.4 새로운 데이터베이스 생성
3.3.5 사용자 생성
3.3.5.1 사용자 생성 및 권한 부여
3.3.5.2 관리자 계정 준비
3.4 테이블 생성 및 변경
3.4.1 테이블 생성
3.4.2 테이블 변경(온라인 및 오프라인)
3.4.2.1 오프라인 스키마 변경
3.4.2.2 MariaDB의 온라인 스키마 변경
3.4.2.3 MySQL의 온라인 스키마 변경
3.4.2.4 pt-online-schema-change
3.4.2.5 온라인 스키마 변경을 사용해도 될까?

▣ 01장: MariaDB
_1.1 MariaDB란?
_1.2 MariaDB vs. MySQL
__1.2.1 MariaDB와 MySQL 그리고 PerconaServer
__1.2.2 공통점
__1.2.3 차이점
___1.2.3.1 라이선스
___1.2.3.2 스토리지 엔진
___1.2.3.3 기능
___1.2.3.4 옵티마이저
__1.2.4 버전별 호환성
__1.2.5 성능 비교
__1.2.6 MariaDB가 MySQL을 대체하게 될까?
__1.2.7 MariaDB와 MySQL 선택

▣ 02장: 설치
_2.1 다운로드
_2.2 설치
__2.2.1 윈도우 버전 설치
___2.2.1.1 설치 프로그램(MSI)을 이용한 설치
3.4.3 테이블 삭제
3.5 데이터 조작
3.5.1 INSERT
3.5.2 SELECT
3.5.3 UPDATE
3.5.4 REPLACE
3.5.5 DELETE

04장: 실행 계획 분석
4.1 개요
4.1.1 쿼리 실행 절차
4.1.2 옵티마이저의 종류
4.1.3 통계 정보
4.1.3.1 MySQL 5.6의 통계 정보
4.1.3.2 MariaDB 10.0의 통계 정보
4.1.4 히스토그램 통계 정보
4.1.4.1 히스토그램이란?
4.1.4.2 MariaDB에서 히스토그램 사용
4.1.5 조인 옵티마이저 옵션
4.2 예제 데이터 준비
4.2.1 예제 데이터 적재
4.2.2 통계 정보 수집
4.3 실행 계획 분석
4.3.1 id 칼럼
4.3.2 select type 칼럼
4.3.2.1 SIMPLE
4.3.2.2 PRIMARY
4.3.2.3 UNION
4.3.2.4 DEPENDENT UNION
4.3.2.5 UNION RESULT
4.3.2.6 SUBQUERY
4.3.2.7 DEPENDENT SUBQUERY
4.3.2.8 DERIVED

___2.2.1.2 압축(ZIP)된 MariaDB 설치
__2.2.2 리눅스 버전 설치
___2.2.2.1 RPM을 이용한 설치
___2.2.2.2 압축(tar.gz)된 MariaDB 설치
_2.3 업그레이드
__2.3.1 MySQL에서 MariaDB로 업그레이드할 때 주의 사항
__2.3.2 버전에 관계없이 가장 안전한 방법
__2.3.3 MySQL 5.0이나 그 이전 버전에서 MariaDB 5.5로 업그레이드
__2.3.4 MySQL 5.1에서 MariaDB 5.5로 업그레이드
__2.3.5 MySQL 5.5에서 MariaDB 5.5로 업그레이드

▣ 03장: MariaDB 기동 및 쿼리 실행
_3.1 서버 시작 및 종료
__3.1.1 리눅스에서 MariaDB 서버의 시작과 종료
___3.1.1.1 서비스로 등록된 경우
___3.1.1.2 서비스로 등록되지 않은 경우
__3.1.2 윈도우에서 MariaDB 서버의 시작과 종료
___3.1.2.1 서비스로 등록된 경우
___3.1.2.2 서비스로 등록되지 않은 경우
_3.2 서버 로그인
4.3.2.9 UNCACHEABLE SUBQUERY
4.3.2.10 UNCACHEABLE UNION
4.3.2.11 MATERIALIZED
4.3.2.12 INSERT
4.3.3 table 칼럼
4.3.4 type 칼럼
4.3.4.1 system
4.3.4.2 const
4.3.4.3 eq ref
4.3.4.4 ref
4.3.4.5 fulltext
4.3.4.6 ref or null
4.3.4.7 unique subquery
4.3.4.8 index subquery
4.3.4.9 range
4.3.4.10 index merge
4.3.4.11 index
4.3.4.12 ALL
4.3.5 possible keys 칼럼
4.3.6 key 칼럼
4.3.7 key len 칼럼
4.3.8 ref 칼럼
4.3.9 rows 칼럼
4.3.10 Extra 칼럼
4.3.10.1 const row not found
4.3.10.2 Distinct
4.3.10.3 Full scan on NULL key
4.3.10.4 Impossible HAVING
4.3.10.6 Impossible WHERE noticed after reading const tables
4.3.10.7 No matching min/max row
4.3.10.8 no matching row in const table
4.3.10.9 No tables used
4.3.10.10 Not exists

__3.2.1 서버 로그인 및 버전 확인
__3.2.2 mysql 클라이언트 프로그램 옵션
___3.2.2.1 안전 모드로 mysql 클라이언트 실행
___3.2.2.2 --execute 옵션으로 mysql 클라이언트 실행
___3.2.2.3 --batch 모드와 함께 --execute 옵션으로 mysql 클라이언트 실행
___3.2.2.4 --batch 모드로 --skip-column-names와 함께 --execute 옵션으로 mysql 클라이언트 실행
_3.3 데이터베이스 및 사용자 생성
__3.3.1 MariaDB의 사용자 계정 인식과 권한
___3.3.1.1 사용자의 식별
___3.3.1.2 권한
___3.3.1.3 권한의 부여
___3.3.1.4 권한 그룹
__3.3.2 MariaDB의 기본 사용자
__3.3.3 MariaDB의 기본 데이터베이스
__3.3.4 새로운 데이터베이스 생성
__3.3.5 사용자 생성
___3.3.5.1 사용자 생성 및 권한 부여
___3.3.5.2 관리자 계정 준비
_3.4 테이블 생성 및 변경
__3.4.1 테이블 생성
__3.4.2 테이블 변경(온라인 및 오프라인)
4.3.10.11 Range checked for each record(index map: N)
4.3.10.12 Scanned N databases
4.3.10.13 Select tables optimized away
4.3.10.14 Skip open table, Open frm only, Open trigger only, Open full table
4.3.10.15 unique row not found
4.3.10.16 Using filesort
4.3.10.17 Using index(커버링 인덱스)
4.3.10.18 Using index for group-by
4.3.10.19 Using join buffer(Block Nested Loop), Using join buffer(Batched Key Access)
4.3.10.20 Using sort union, Using union, Using intersect, Using sort intersection
4.3.10.21 Using temporary
4.3.10.22 Using where
4.3.10.23 Using where with pushed condition
4.3.10.24 Deleting all rows
4.3.10.25 FirstMatch(tbl name)
4.3.10.26 LooseScan(m n)
4.3.10.27 Materialize, Scan
4.3.10.28 Start materialize, End materialize, Scan
4.3.10.29 Start temporary, End temporary
4.3.10.30 Using index condition
4.3.10.31 Rowid-ordered scan, Key-ordered scan
4.3.10.32 No matching rows after partition pruning
4.3.11 EXPLAIN EXTENDED(Filtered 칼럼)
4.3.12 EXPLAIN EXTENDED(추가 옵티마이저 정보)
4.3.13 EXPLAIN PARTITIONS(Partitions 칼럼)
4.4 옵티마이저 힌트
4.4.1 힌트의 사용법
4.4.2 STRAIGHT JOIN
4.4.3 USE INDEX / FORCE INDEX / IGNORE INDEX
4.4.4 SQL CACHE / SQL NO CACHE
4.4.5 SQL CALC FOUND ROWS
4.4.6 기타 힌트
4.5 실행 계획 분석 시 주의사항

___3.4.2.1 오프라인 스키마 변경
___3.4.2.2 MariaDB의 온라인 스키마 변경
___3.4.2.3 MySQL의 온라인 스키마 변경
___3.4.2.4 pt-online-schema-change
___3.4.2.5 온라인 스키마 변경을 사용해도 될까?
__3.4.3 테이블 삭제
_3.5 데이터 조작
__3.5.1 INSERT
__3.5.2 SELECT
__3.5.3 UPDATE
__3.5.4 REPLACE
__3.5.5 DELETE

▣ 04장: 실행 계획 분석
_4.1 개요
__4.1.1 쿼리 실행 절차
__4.1.2 옵티마이저의 종류
__4.1.3 통계 정보
___4.1.3.1 MySQL 5.6의 통계 정보
4.5.1 Select type 칼럼의 주의 대상
4.5.2 Type 칼럼의 주의 대상
4.5.3 Key 칼럼의 주의 대상
4.5.4 Rows 칼럼의 주의 대상
4.5.5 Extra 칼럼의 주의 대상
4.5.5.1 쿼리가 요건을 제대로 반영하고 있는지 확인해야 하는 경우
4.5.5.2 쿼리의 실행 계획이 좋지 않은 경우
4.5.5.3 쿼리의 실행 계획이 좋은 경우

05장: 최적화
5.1 풀 테이블 스캔
5.2 ORDER BY 처리(Using filesort)
5.2.1 소트 버퍼(Sort buffer)
5.2.2 정렬 알고리즘
5.2.3 정렬의 처리 방식
5.2.3.1 인덱스를 사용한 정렬
5.2.3.2 드라이빙 테이블만 정렬
5.2.3.3 임시 테이블을 이용한 정렬
5.2.3.4 정렬 방식의 성능 비교
5.2.4 ORDER BY....LIMIT n 최적화
5.2.5 정렬 관련 상태 변수
5.3 GROUP BY 처리
5.3.1 인덱스 스캔을 이용하는 GROUP BY(타이트 인덱스 스캔)
5.3.2 루스(loose) 인덱스 스캔을 이용하는 GROUP BY
5.3.3 임시 테이블을 사용하는 GROUP BY
5.4 DISTINCT 처리
5.4.1 SELECT DISTINCT
5.4.2 집함 함수와 함께 사용된 DISTINCT
5.5 임시 테이블(Using temporary)
5.5.1 임시 테이블이 필요한 쿼리
5.5.2 임시 테이블이 디스크에 생성되는 경우(Aria 스토리지 엔진을 사용)
5.5.3 임시 테이블 관련 상태 변수
5.5.4 인덱스를 가지는 내부

___4.1.3.2 MariaDB 10.0의 통계 정보
__4.1.4 히스토그램 통계 정보
___4.1.4.1 히스토그램이란?
___4.1.4.2 MariaDB에서 히스토그램 사용
__4.1.5 조인 옵티마이저 옵션
_4.2 예제 데이터 준비
__4.2.1 예제 데이터 적재
__4.2.2 통계 정보 수집
_4.3 실행 계획 분석
__4.3.1 id 칼럼
__4.3.2 select_type 칼럼
___4.3.2.1 SIMPLE
___4.3.2.2 PRIMARY
___4.3.2.3 UNION
___4.3.2.4 DEPENDENT UNION
___4.3.2.5 UNION RESULT
___4.3.2.6 SUBQUERY
___4.3.2.7 DEPENDENT SUBQUERY
___4.3.2.8 DERIVED
___4.3.2.9 UNCACHEABLE SUB 임시 테이블
5.5.5 내부 임시 테이블(Internal Temporary Table)의 주의사항
5.6 인덱스 컨디션 푸시다운(Index Condition Pushdown, ICP)
5.7 멀티 레인지 리드(Multi Range Read)
5.7.1 RowId 기준 정렬(Rowid-ordered scan)
5.7.2 Key 기준 정렬(Key-ordered scan)
5.7.3 Key와 RowId 모두 정렬(Key-ordered, Rowid-ordered scan)
5.7.4 멀티 레인지 리드 최적화와 정렬
5.7.5 멀티 레인지 리드 최적화 주의 사항
5.8 인덱스 머지(Index merge)
5.8.1 Using union
5.8.2 Using sort union
5.8.3 Using intersect
5.8.4 Using sort intersect
5.9 테이블 조인
5.9.1 조인의 종류
5.9.1.1 JOIN (INNER JOIN)
5.9.1.2 OUTER JOIN
5.9.1.3 카테시안 조인
5.9.1.4 NATURAL JOIN
5.9.2 조인 알고리즘
5.9.2.1 조인 캐시 레벨(join cache level)
5.9.2.2 조인 버퍼 설정
5.9.2.3 단순 네스티드 루프(Simple Nested Loop, NL)
5.9.2.4 블록 네스티드 루프(Block Nested Loop, BNL)
5.9.2.5 블록 네스티드 루프 해시(Block Nested Loop Hash, BNLH)
5.9.2.6 블록 인덱스 조인(Block Index Join, Batched Key Access, BKA)
5.9.2.7 블록 인덱스 해시 조인(Block Index Hash Join, Batched Key Access Hash)
5.9.3 조인의 주의사항
5.9.3.1 조인 실행 결과의 정렬 순서
5.9.3.2 INNER JOIN과 OUTER JOIN의 선택
5.10 서브 쿼리
5.10.1 세미 조인 서브쿼리 최적화
5.10.1.1 Table pullout 최적화
QUERY
___4.3.2.10 UNCACHEABLE UNION
___4.3.2.11 MATERIALIZED
___4.3.2.12 INSERT
__4.3.3 table 칼럼
__4.3.4 type 칼럼
___4.3.4.1 system
___4.3.4.2 const
___4.3.4.3 eq_ref
___4.3.4.4 ref
___4.3.4.5 fulltext
___4.3.4.6 ref_or_null
___4.3.4.7 unique_subquery
___4.3.4.8 index_subquery
___4.3.4.9 range
___4.3.4.10 index_merge
___4.3.4.11 index
___4.3.4.12 ALL
__4.3.5 possible_keys 칼럼

__4.3.6 key 칼럼
__4.3.7 key_len 칼럼
__4.3.8 ref 칼럼
__4.3.9 rows 칼럼
__4.3.10 Extra 칼럼
___4.3.10.1 const row not found
___4.3.10.2 Distinct
___4.3.10.3 Full scan on NULL key
___4.3.10.4 Impossible HAVING
___4.3.10.6 Impossible WHERE noticed after reading const tables
___4.3.10.7 No matching min/max row
___4.3.10.8 no matching row in const table
___4.3.10.9 No tables used
___4.3.10.10 Not exists
___4.3.10.11 Range checked for each record(index map: N)
___4.3.10.12 Scanned N databases
___4.3.10.13 Select tables optimized away
___4.3.10.14 Skip_open_table, Open_frm_only, Open_trigger_only, Open_full_table
___4.3.10.15 unique row not found
5.10.1.2 FirstMatch 최적화
5.10.1.3 Semi-join Materialization 최적화
5.10.1.4 LooseScan 최적화
5.10.1.5 Duplicate Weedout 최적화
5.10.2 세미 조인이 아닌 서브쿼리 최적화
5.10.2.1 Materialization
5.10.2.2 IN-to-EXISTS
5.10.3 서브 쿼리 캐시

06장: 스토리지 엔진
6.1 Aria 스토리지 엔진
6.1.1 트랜잭션
6.1.2 페이지 캐시
6.1.3 시스템 설정 변수
6.2 XtraDB 스토리지 엔진
6.2.1 InnoDB와 XtraDB 스토리지 엔진 교체
6.3 InnoDB 스토리지 엔진
6.3.1 MySQL 5.6 InnoDB
6.3.1.1 영구적인 통계 정보
6.3.1.2 데이터 읽기 최적화
6.3.1.3 커널 뮤텍스(Kernel mutex)
6.3.1.4 멀티 스레드 기반의 언두 퍼지(Multi threaded purge)
6.3.1.5 독립된 플러시 스레드
6.3.1.6 가변 페이지 사이즈
6.3.1.7 테이블 스페이스 복사(Transportable tablespace)
6.3.1.8 독립된 언두 스페이스
6.3.1.9 읽기 전용 트랜잭션(Read-only transaction) 최적화
6.3.1.10 버퍼 풀 덤프 & 로드
6.3.1.11 리두 로그 사이즈
6.3.1.12 리두 로그 크기 변경
6.3.1.13 데드락 이력
6.3.2 더티 페이지 플러시
6.3.2.1 플

___4.3.10.16 Using filesort
___4.3.10.17 Using index(커버링 인덱스)
___4.3.10.18 Using index for group-by
___4.3.10.19 Using join buffer(Block Nested Loop), Using join buffer(Batched Key Access)
___4.3.10.20 Using sort_union, Using union, Using intersect, Using sort_intersection
___4.3.10.21 Using temporary
___4.3.10.22 Using where
___4.3.10.23 Using where with pushed condition
___4.3.10.24 Deleting all rows
___4.3.10.25 FirstMatch(tbl_name)
___4.3.10.26 LooseScan(m n)
___4.3.10.27 Materialize, Scan
___4.3.10.28 Start materialize, End materialize, Scan
___4.3.10.29 Start temporary, End temporary
___4.3.10.30 Using index condition
___4.3.10.31 Rowid-ordered scan, Key-ordered scan
___4.3.10.32 No matching rows after partition pruning
__4.3.11 EXPLAIN EXTENDED(Filtered 칼럼)
__4.3.12 EXPLAIN EXTENDED(추가 옵티마이저 정보) 러시 리스트 플러시
6.3.2.2 LRU 리스트 플러시
6.3.2.3 InnoDB와 XtraDB의 더티 플러시
6.3.2.4 MySQL 5.5 InnoDB의 더티 플러시
6.3.2.5 MariaDB 5.5 XtraDB의 더티 플러시
6.3.2.6 MySQL 5.6 InnoDB의 더티 플러시
6.3.2.7 MariaDB 10.0의 XtraDB
6.3.3 버퍼 풀 성능 개선
6.3.3.1 NUMA
6.3.3.2 버퍼 풀 메모리 초기 할당
6.3.3.3 InnoDB 잠금 세분화
6.3.3.4 I/O 기반의 워크로드 성능 향상
6.3.3.5 어댑티브 해시 파티션
6.3.4 원자 단위의 쓰기(FusionIO SSD를 위한 Atomic write)
6.3.5 확장된 InnoDB 엔진 상태 출력
6.3.5.1 백그라운드 스레드 관련 상태 변수
6.3.5.2 세마포어 관련 상태 변수
6.3.5.3 인서트 버퍼와 어댑티브 해시 인덱스 관련 상태 변수
6.3.5.4 로그 관련 상태 변수
6.3.5.5 버퍼 풀 관련 상태 변수
6.3.5.6 트랜잭션 관련 상태 변수
6.3.6 XtraDB 리두 로그 아카이빙
6.3.7 변경된 페이지 트랙킹
6.4 전문 검색 엔진
6.4.1 전문 검색 인덱스 추가
6.4.2 전문 검색 인덱스를 위한 테이블 스페이스
6.4.3 전문 검색 인덱스 관련 INFORMATION SCHEMA 정보
6.4.3.1 InnoDB의 모든 전문 검색 인덱스에 적용되는 내용
6.4.3.2 전문 검색 인덱스를 가진 테이블 단위로 적용되는 내용
6.4.4 전문 검색 인덱스 사용
6.4.5 주의 사항
6.5 Memcached 플러그인
6.5.1 아키텍처
6.5.2 설치 및 테스트
6.5.3 캐시 정책
6.5.4 사용자 테이블 등록
6.5.5 관련 시스템 변수
6.6 카산드라 스토리지 엔진
6.6.1 카산드라
6.6.2 카산드라 스토리지 엔진
6.7 CONNECT 스토리지 엔진
6.7.1 CONNECT 스토리지 엔진 설치
6.7.2 오라클 RDBMS 테이블 연결
6.7.3 my.cnf 설정 파일 연결
6.7.4 운영체제의 디렉터리 연결
6.8 시퀀스 스토리지 엔진
6.8.1 시퀀스 스토리지 엔진 기본 사용법
6.8.2 누락된 번호 찾기
6.8.3 순차적으로 조합된 번호 쌍 생성
6.8.4 배수 또는 공배수 찾기
6.8.5 순차적인 알파벳 생성
6.8.6 순차적인 날짜 생성
6.8.7 데이터 복제 가공
6.9 Mroonga 전문 검색 스토리지 엔진
6.9.1 인덱스 알고리즘
6.9.1.1 구분자(Stopword) 방식
6.9.1.2 n-Gram 방식
6.9.1.3 구분자와 n-Gram의 차이
6.9.2 Mroonga 전문 검색 엔진 설치
6.9.3 Mroonga 전문 검색 엔진 사용

07장: 기타 기능
7.1 성능 향상
7.1.1 스레드 풀(Thread Pool)
7.1.1.1 MySQL 서버의 전통적인 연결 및 처리 방식
7.1.1.2 MariaDB의 스레드 풀

__4.3.13 EXPLAIN PARTITIONS(Partitions 칼럼)
_4.4 옵티마이저 힌트
__4.4.1 힌트의 사용법
__4.4.2 STRAIGHT_JOIN
__4.4.3 USE INDEX / FORCE INDEX / IGNORE INDEX
__4.4.4 SQL_CACHE / SQL_NO_CACHE
__4.4.5 SQL_CALC_FOUND_ROWS
__4.4.6 기타 힌트
_4.5 실행 계획 분석 시 주의사항
__4.5.1 Select_type 칼럼의 주의 대상
__4.5.2 Type 칼럼의 주의 대상
__4.5.3 Key 칼럼의 주의 대상
__4.5.4 Rows 칼럼의 주의 대상
__4.5.5 Extra 칼럼의 주의 대상
___4.5.5.1 쿼리가 요건을 제대로 반영하고 있는지 확인해야 하는 경우
___4.5.5.2 쿼리의 실행 계획이 좋지 않은 경우
___4.5.5.3 쿼리의 실행 계획이 좋은 경우

▣ 05장: 최적화
_5.1 풀 테이블 스캔
7.1.1.3 MariaDB 스레드 풀의 사용과 튜닝
7.1.1.4 주의 사항
7.2 관리 및 진단
7.2.1 SHOW EXPLAIN FOR
7.2.2 슬로우 쿼리 로그에 실행 계획 출력
7.2.3 구조화된 실행 계획 출력
7.2.4 스레드 단위의 메모리 사용량
7.2.5 SHUTDOWN 명령
7.2.6 사용자나 쿼리 실행 강제 종료(KILL)
7.2.7 GET DIAGNOSTICS
7.3 개발 생산성
7.3.1 LIMIT ROWS EXAMINED
7.3.2 DELETE...RETURNING
7.3.3 마이크로 초 단위의 시간 저장
7.3.4 DATETIME 타입의 기본값 설정
7.3.5 정규 표현식 기능 확장
7.3.6 가상(Virtual) 칼럼
7.3.7 동적(Dynamic) 칼럼
7.4 파티션
7.4.1 명시적 파티션 지정
7.4.1.1 명시적 파티션 지정 사용법
7.4.1.2 명시적 파티션 지정 기능의 용도
7.4.2 파티션 테이블 스페이스 교체(Exchange)
7.5 백업
7.5.1 바이너리 로그 원격 백업
7.5.2 XtraBackup 소개
7.5.2.1 XtraBackup 패키지 구성
7.5.2.2 XtraBackup의 원리
7.5.2.3 XtraBackup의 기본 사용법
7.5.3 XtraBackup의 기능
7.5.3.1 스트리밍 백업
7.5.3.2 압축
7.5.3.3 암호화

_5.2 ORDER BY 처리(Using filesort)
__5.2.1 소트 버퍼(Sort buffer)
__5.2.2 정렬 알고리즘
__5.2.3 정렬의 처리 방식
___5.2.3.1 인덱스를 사용한 정렬
___5.2.3.2 드라이빙 테이블만 정렬
___5.2.3.3 임시 테이블을 이용한 정렬
___5.2.3.4 정렬 방식의 성능 비교
__5.2.4 ORDER BY....LIMIT n 최적화
__5.2.5 정렬 관련 상태 변수
_5.3 GROUP BY 처리
__5.3.1 인덱스 스캔을 이용하는 GROUP BY(타이트 인덱스 스캔)
__5.3.2 루스(loose) 인덱스 스캔을 이용하는 GROUP BY
__5.3.3 임시 테이블을 사용하는 GROUP BY
_5.4 DISTINCT 처리
__5.4.1 SELECT DISTINCT
__5.4.2 집함 함수와 함께 사용된 DISTINCT
_5.5 임시 테이블(Using temporary)
__5.5.1 임시 테이블이 필요한 쿼리
__5.5.2 임시 테이블이 디스크에 생성되는 경우(Aria 스토리지 엔진을 사용)
7.5.3.4 슬레이브 백업
7.5.3.5 병렬(Parallel) 백업
7.5.3.6 백업 속도 조절
7.5.3.7 개별 테이블 복구
7.5.3.8 FLUSH TABLES WITH READ LOCK 개선
7.5.4 XtraBackup의 고급 사용법
7.5.4.1 PIT(Point In Time) 복구
7.5.4.2 증분(Incremental) 백업
7.5.4.3 부분(Partial) 백업
7.5.4.4 컴팩트(Compact) 백업
7.5.4.5 스트리밍(Streaming) 백업
7.5.4.6 암호화(Encrypt) 백업

08장: 레플리케이션
8.1 글로벌 트랜잭션 아이디(Global Transaction ID)
8.1.1 글로벌 트랜잭션 아이디(GTID)란?
8.1.2 글로벌 트랜잭션 아이디의 필요성
8.1.3 MariaDB 10.0 글로벌 트랜잭션 아이디
8.1.3.1 GTID를 이용한 복제 구축
8.1.3.2 GTID를 사용한 복제 관리
8.1.3.3 GTID를 이용한 슬레이브에서 트랜잭션 건너뛰기
8.1.4 MySQL 5.6 글로벌 트랜잭션 아이디
8.1.4.1 GTID를 이용한 복제 구축
8.1.4.2 GTID 관련 함수
8.1.4.3 GTID 이벤트 건너뛰기
8.2 멀티 소스 복제(Multi-source replication)
8.2.1 멀티 소스 복제 관련 명령
8.2.2 멀티 소스 복제 구축
8.2.3 멀티 소스 복제와 글로벌 트랜잭션
8.3 멀티 스레드 복제
8.3.1 MySQL 5.6의 멀티 스레드 복제
8.3.2 MariaDB 10.0의 멀티 스레드 복제
8.4 크래시 세이프(Crash safe) 슬레이브

__5.5.3 임시 테이블 관련 상태 변수
__5.5.4 인덱스를 가지는 내부 임시 테이블
__5.5.5 내부 임시 테이블(Internal Temporary Table)의 주의사항
_5.6 인덱스 컨디션 푸시다운(Index Condition Pushdown, ICP)
_5.7 멀티 레인지 리드(Multi Range Read)
__5.7.1 RowId 기준 정렬(Rowid-ordered scan)
__5.7.2 Key 기준 정렬(Key-ordered scan)
__5.7.3 Key와 RowId 모두 정렬(Key-ordered, Rowid-ordered scan)
__5.7.4 멀티 레인지 리드 최적화와 정렬
__5.7.5 멀티 레인지 리드 최적화 주의 사항
_5.8 인덱스 머지(Index merge)
__5.8.1 Using union
__5.8.2 Using sort_union
__5.8.3 Using intersect
__5.8.4 Using sort_intersect
_5.9 테이블 조인
__5.9.1 조인의 종류
___5.9.1.1 JOIN (INNER JOIN)
___5.9.1.2 OUTER JOIN
___5.9.1.3 카테시안 조인

___5.9.1.4 NATURAL JOIN
__5.9.2 조인 알고리즘
___5.9.2.1 조인 캐시 레벨(join_cache_level)
___5.9.2.2 조인 버퍼 설정
___5.9.2.3 단순 네스티드 루프(Simple Nested Loop, NL)
___5.9.2.4 블록 네스티드 루프(Block Nested Loop, BNL)
___5.9.2.5 블록 네스티드 루프 해시(Block Nested Loop Hash, BNLH)
___5.9.2.6 블록 인덱스 조인(Block Index Join, Batched Key Access, BKA)
___5.9.2.7 블록 인덱스 해시 조인(Block Index Hash Join, Batched Key Access Hash)
__5.9.3 조인의 주의사항
___5.9.3.1 조인 실행 결과의 정렬 순서
___5.9.3.2 INNER JOIN과 OUTER JOIN의 선택
_5.10 서브 쿼리
__5.10.1 세미 조인 서브쿼리 최적화
___5.10.1.1 Table pullout 최적화
___5.10.1.2 FirstMatch 최적화
___5.10.1.3 Semi-join Materialization 최적화
___5.10.1.4 LooseScan 최적화
___5.10.1.5 Duplicate Weedout 최적화
__5.10.2 세미 조인이 아닌 서브쿼리 최적화
8.4.1 MariaDB 10.0의 크래시 세이프 복제
8.4.2 MySQL 5.6의 크래시 세이프 복제
8.5 ROW 기반의 복제 기능 개선
8.5.1 ROW 포맷의 용량 최적화
8.5.2 ROW 포맷 바이너리 로그를 위한 정보성 로그 이벤트
8.5.2.1 MariaDB 주석 이벤트
8.5.2.2 MySQL 5.6의 정보성 로그 이벤트
8.6 지연된 복제
8.7 MariaDB와 MySQL 서버간의 복제
8.8 그 외의 기타 기능 개선
8.8.1 바이너리 로그 체크섬
8.8.2 바이너리 로그 API
8.8.3 바이너리 로그 그룹 커밋

___5.10.2.1 Materialization
___5.10.2.2 IN-to-EXISTS
__5.10.3 서브 쿼리 캐시

▣ 06장: 스토리지 엔진
_6.1 Aria 스토리지 엔진
__6.1.1 트랜잭션
__6.1.2 페이지 캐시
__6.1.3 시스템 설정 변수
_6.2 XtraDB 스토리지 엔진
__6.2.1 InnoDB와 XtraDB 스토리지 엔진 교체
_6.3 InnoDB 스토리지 엔진
__6.3.1 MySQL 5.6 InnoDB
___6.3.1.1 영구적인 통계 정보
___6.3.1.2 데이터 읽기 최적화
___6.3.1.3 커널 뮤텍스(Kernel mutex)
___6.3.1.4 멀티 스레드 기반의 언두 퍼지(Multi threaded purge)
___6.3.1.5 독립된 플러시 스레드
___6.3.1.6 가변 페이지 사이즈
___6.3.1.7 테이블 스페이스 복사(Transporta
ble tablespace)
___6.3.1.8 독립된 언두 스페이스
___6.3.1.9 읽기 전용 트랜잭션(Read-only transaction) 최적화
___6.3.1.10 버퍼 풀 덤프 & 로드
___6.3.1.11 리두 로그 사이즈
___6.3.1.12 리두 로그 크기 변경
___6.3.1.13 데드락 이력
__6.3.2 더티 페이지 플러시
___6.3.2.1 플러시 리스트 플러시
___6.3.2.2 LRU 리스트 플러시
___6.3.2.3 InnoDB와 XtraDB의 더티 플러시
___6.3.2.4 MySQL 5.5 InnoDB의 더티 플러시
___6.3.2.5 MariaDB 5.5 XtraDB의 더티 플러시
___6.3.2.6 MySQL 5.6 InnoDB의 더티 플러시
___6.3.2.7 MariaDB 10.0의 XtraDB
__6.3.3 버퍼 풀 성능 개선
___6.3.3.1 NUMA
___6.3.3.2 버퍼 풀 메모리 초기 할당
___6.3.3.3 InnoDB 잠금 세분화
___6.3.3.4 I/O 기반의 워크로드 성능 향상
___6.3.3.5 어댑티브 해시 파티션

__6.3.4 원자 단위의 쓰기(FusionIO SSD를 위한 Atomic write)
__6.3.5 확장된 InnoDB 엔진 상태 출력
___6.3.5.1 백그라운드 스레드 관련 상태 변수
___6.3.5.2 세마포어 관련 상태 변수
___6.3.5.3 인서트 버퍼와 어댑티브 해시 인덱스 관련 상태 변수
___6.3.5.4 로그 관련 상태 변수
___6.3.5.5 버퍼 풀 관련 상태 변수
___6.3.5.6 트랜잭션 관련 상태 변수
__6.3.6 XtraDB 리두 로그 아카이빙
__6.3.7 변경된 페이지 트랙킹
_6.4 전문 검색 엔진
__6.4.1 전문 검색 인덱스 추가
__6.4.2 전문 검색 인덱스를 위한 테이블 스페이스
__6.4.3 전문 검색 인덱스 관련 INFORMATION_SCHEMA 정보
___6.4.3.1 InnoDB의 모든 전문 검색 인덱스에 적용되는 내용
___6.4.3.2 전문 검색 인덱스를 가진 테이블 단위로 적용되는 내용
__6.4.4 전문 검색 인덱스 사용
__6.4.5 주의 사항
_6.5 Memcached 플러그인
__6.5.1 아키텍처
__
6.5.2 설치 및 테스트
__6.5.3 캐시 정책
__6.5.4 사용자 테이블 등록
__6.5.5 관련 시스템 변수
_6.6 카산드라 스토리지 엔진
__6.6.1 카산드라
__6.6.2 카산드라 스토리지 엔진
_6.7 CONNECT 스토리지 엔진
__6.7.1 CONNECT 스토리지 엔진 설치
__6.7.2 오라클 RDBMS 테이블 연결
__6.7.3 my.cnf 설정 파일 연결
__6.7.4 운영체제의 디렉터리 연결
_6.8 시퀀스 스토리지 엔진
__6.8.1 시퀀스 스토리지 엔진 기본 사용법
__6.8.2 누락된 번호 찾기
__6.8.3 순차적으로 조합된 번호 쌍 생성
__6.8.4 배수 또는 공배수 찾기
__6.8.5 순차적인 알파벳 생성
__6.8.6 순차적인 날짜 생성
__6.8.7 데이터 복제 가공
_6.9 Mroonga 전문 검색 스토리지 엔진

__6.9.1 인덱스 알고리즘
___6.9.1.1 구분자(Stopword) 방식
___6.9.1.2 n-Gram 방식
___6.9.1.3 구분자와 n-Gram의 차이
__6.9.2 Mroonga 전문 검색 엔진 설치
__6.9.3 Mroonga 전문 검색 엔진 사용

▣ 07장: 기타 기능
_7.1 성능 향상
__7.1.1 스레드 풀(Thread Pool)
___7.1.1.1 MySQL 서버의 전통적인 연결 및 처리 방식
___7.1.1.2 MariaDB의 스레드 풀
___7.1.1.3 MariaDB 스레드 풀의 사용과 튜닝
___7.1.1.4 주의 사항
_7.2 관리 및 진단
__7.2.1 SHOW EXPLAIN FOR
__7.2.2 슬로우 쿼리 로그에 실행 계획 출력
__7.2.3 구조화된 실행 계획 출력
__7.2.4 스레드 단위의 메모리 사용량
__7.2.5 SHUTDOWN 명령

__7.2.6 사용자나 쿼리 실행 강제 종료(KILL)
__7.2.7 GET DIAGNOSTICS
_7.3 개발 생산성
__7.3.1 LIMIT ROWS EXAMINED
__7.3.2 DELETE...RETURNING
__7.3.3 마이크로 초 단위의 시간 저장
__7.3.4 DATETIME 타입의 기본값 설정
__7.3.5 정규 표현식 기능 확장
__7.3.6 가상(Virtual) 칼럼
__7.3.7 동적(Dynamic) 칼럼
_7.4 파티션
__7.4.1 명시적 파티션 지정
___7.4.1.1 명시적 파티션 지정 사용법
___7.4.1.2 명시적 파티션 지정 기능의 용도
__7.4.2 파티션 테이블 스페이스 교체(Exchange)
_7.5 백업
__7.5.1 바이너리 로그 원격 백업
__7.5.2 XtraBackup 소개
___7.5.2.1 XtraBackup 패키지 구성
___7.5.2.2 XtraBackup의 원리

___7.5.2.3 XtraBackup의 기본 사용법
__7.5.3 XtraBackup의 기능
___7.5.3.1 스트리밍 백업
___7.5.3.2 압축
___7.5.3.3 암호화
___7.5.3.4 슬레이브 백업
___7.5.3.5 병렬(Parallel) 백업
___7.5.3.6 백업 속도 조절
___7.5.3.7 개별 테이블 복구
___7.5.3.8 FLUSH TABLES WITH READ LOCK 개선
__7.5.4 XtraBackup의 고급 사용법
___7.5.4.1 PIT(Point In Time) 복구
___7.5.4.2 증분(Incremental) 백업
___7.5.4.3 부분(Partial) 백업
___7.5.4.4 컴팩트(Compact) 백업
___7.5.4.5 스트리밍(Streaming) 백업
___7.5.4.6 암호화(Encrypt) 백업

▣ 08장: 레플리케이션

_8.1 글로벌 트랜잭션 아이디(Global Transaction ID)
__8.1.1 글로벌 트랜잭션 아이디(GTID)란?
__8.1.2 글로벌 트랜잭션 아이디의 필요성
__8.1.3 MariaDB 10.0 글로벌 트랜잭션 아이디
___8.1.3.1 GTID를 이용한 복제 구축
___8.1.3.2 GTID를 사용한 복제 관리
___8.1.3.3 GTID를 이용한 슬레이브에서 트랜잭션 건너뛰기
__8.1.4 MySQL 5.6 글로벌 트랜잭션 아이디
___8.1.4.1 GTID를 이용한 복제 구축
___8.1.4.2 GTID 관련 함수
___8.1.4.3 GTID 이벤트 건너뛰기
_8.2 멀티 소스 복제(Multi-source replication)
__8.2.1 멀티 소스 복제 관련 명령
__8.2.2 멀티 소스 복제 구축
__8.2.3 멀티 소스 복제와 글로벌 트랜잭션
_8.3 멀티 스레드 복제
__8.3.1 MySQL 5.6의 멀티 스레드 복제
__8.3.2 MariaDB 10.0의 멀티 스레드 복제
_8.4 크래시 세이프(Crash safe) 슬레이브
__8.4.1 MariaDB 10.0의 크래시 세이프 복제
__8.4.2 MySQL 5.6의 크래시 세이프 복제

_8.5 ROW 기반의 복제 기능 개선
__8.5.1 ROW 포맷의 용량 최적화
__8.5.2 ROW 포맷 바이너리 로그를 위한 정보성 로그 이벤트
___8.5.2.1 MariaDB 주석 이벤트
___8.5.2.2 MySQL 5.6의 정보성 로그 이벤트
_8.6 지연된 복제
_8.7 MariaDB와 MySQL 서버간의 복제
_8.8 그 외의 기타 기능 개선
__8.8.1 바이너리 로그 체크섬
__8.8.2 바이너리 로그 API
__8.8.3 바이너리 로그 그룹 커밋

저자소개

생년월일 -

이성욱은 컴퓨터 과학을 전공하고, 금융권의 CRM/DW 프로젝트 리더로 참여했으며, 2년여간 DW를 위한 ETL 솔루션을 개발했다. 이후 네이버와 라인의 DBA로 근무했으며 현재 카카오에서 DB 운영과 트러블슈팅 그리고 신기술 벤치마킹과 DBMS 엔진 최적화를 수행하고 있다. 또한 지금까지 배운 내용과 경험한 것을 전파하기 위해서 저술 활동과 세미나를 진행하고 있다.

[저서]
PHP 5 웹 프로그래밍 (2007. 대림)
Real MySQL(2012. 위키북스)
Real MariaDB(2014. 위키북스)

[번역서]
MySQL 성능 최적화(2010. 위키북스)

저자의 다른책

전체보기

컴퓨터/인터넷 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

    리뷰쓰기

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    10.0

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    판매자

    (주)교보문고

    상호

    (주)교보문고

    사업자 종류

    법인사업자

    사업자번호

    102-81-11670

    연락처

    1544-1900

    이메일

    callcenter@kyobobook.co.kr

    통신판매 신고 번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시, 1만 원 이상 무료, 1만원 미만 2천 원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용