이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 PDF
eBook Real MariaDB
MariaDB 10.0과 MySQL 5.6을 함께 배우는 스마트한 PDF 필기 기능을 사용해 보세요!
이성욱
위키북스 2022.11.18.
가격
25,000
25,000
YES포인트?
1,250원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요
PDF 안내

이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.

예스24만의 독보적인 PDF 필기 기능을 경험해 보세요!

소개

목차

▣ 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 온라인 스키마 변경을 사용해도 될까?
__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
___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
___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 실행 계획 분석 시 주의사항
__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 인덱스를 가지는 내부 임시 테이블
__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 세미 조인이 아닌 서브쿼리 최적화
___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 플러시 리스트 플러시
___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 [THREAD-ID

저자 소개

이성욱
컴퓨터 과학을 전공하고 네이버와 라인을 거쳐 카카오 및 밸런스히어로에서 DBA로 근무했으며, 현재 당근마켓 DB팀 리더로 근무하고 있다.

관련 분류

카테고리 분류

품목정보

발행일
2022년 11월 18일
이용안내
  •  배송 없이 구매 후 바로 읽기
  •  이용기간 제한없음
  •   TTS 가능 ?
  •  저작권 보호를 위해 인쇄 기능 제공 안함
지원기기
크레마, PC(윈도우 - 4K 모니터 미지원), 아이폰, 아이패드, 안드로이드폰, 안드로이드패드, 전자책단말기(저사양 기기 사용 불가), PC(Mac)
파일/용량
PDF(DRM) | 10.44MB ?
글자 수/ 페이지 수
약 636쪽 ?
ISBN13
9791158393854

출판사 리뷰

★ 이 책에서 다루는 내용 ★

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

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

http://cafe.naver.com/realmysql

리뷰/한줄평4

리뷰

10.0 리뷰 총점

한줄평

9.3 한줄평 총점

클린봇이 부적절한 글을 감지 중입니다.

설정