학과 샘플강의

MariaDB 전체 19시간 46분 강의당평균 59분17초

알지오 2016. 4. 20. 15:37



MariaDB
전체 : 19시간 46분 / 강의당평균 : 59분17초

01 MariaDB 시작
설치/기동 및 쿼리 실행/서버 시작 및 종료/서버 로그인/데이터베이스 및 사용자 생성/전역권한/데이터베이스 레벨 권한/테이블 레벨 권한/스토어드 프로그램 레벨 권한/
57분
책갈피 : [00:00] 마리아DB란 / [00:11] 간단한 설치과정 / [01:10] 윈도우 버전, 리눅스 버전 / [01:37] 윈도우 버전으로 설치하는 방법(MSI, zip) / [04:08] 마리아DB 실행 / [04:22] 리눅스 버전으로 설치하는 방법(RPM, tar.gz) / [05:13] 마리아DB 업그레이드 / [07:51] 시작과 종료 방법 / [09:06] 설정파일 확인 / [09:18] my-small.ini 파일 확인 / [09:40] default 파일 설정 및 실행 / [10:17] 기동 및 쿼리 실행 / [10:42] 마리아DB 서버 로그인 / [12:07] my-sql 클라이언트 서버 로그인 / [13:34] my-sql 클라이언트 프로그램 / [14:02] 연결정보 확인 / [14:32] my-sql 클라이언트 프로그램의 장점 / [15:04] my-sql 클라이언트 프로그램의 옵션 / [15:32] --host / [15:48] --port / [15:58] --user / [16:14] --password / [16:34] --database / [16:50] --execute / [17:04] --auto-rehash / [17:30] --batch / [17:44] --skip-column-names / [18:04] --safe-updates / [18:45] 옵션의 사용 예제1 (execute) / [19:34] 옵션의 사용 예제2 (execute) / [19:55] 옵션의 사용 예제3 (batch, execute) / [20:48] 옵션의 사용 예제4 (batch, skip-column-names) / [21:14] 데이터베이스 및 사용자 생성 / [21:58] 사용자 식별 / [23:15] 모두 접속 가능한 사용자 계정 / [23:33] 주의할 점(중첩되는 계정이 여러개일 경우) / [24:55] 권한 / [25:25] 사용자에게 권한 부여 / [25:44] on절에 명시하는 오브젝트 / [25:53] privilege_list / [27:51] 전역권한 / [31:02] 데이터베이스 레벨 권한 / [32:25] 테이블 레벨 권한 / [33:57] 스토어드 프로그램 레벨 권한 / [34:33] GRANT 명령 / [35:10] GRANT 옵션 권한의 특징 / [35:56] 전역권한 부여 (super) / [36:49] 데이터베이스 권한 부여 (event) / [37:43] 테이블 권한 부여1 (모든 데이터베이스의 오브젝트) / [38:02] 테이블 권한 부여2 (특정 데이터베이스의 오브젝즈) / [38:11] 테이블 권한 부여3 (특정 데이터베이스의 특정 테이블) / [38:20] 테이블 권한 부여4 (특정 컬럼에 대해서만 권한 부여) / [39:35] user, host / [39:45] 권한 그룹 / [40;06] create role / [42:12] 특정 사용자에게 권한 부여 / [42:38] 실제 사용자에게 권한 부여 / [43:01] 아쉬운 점 / [43:25] set role / [44:38] 기본 사용자와 기본 데이터베이스 / [45:01] my-sql_install_db / [45:36] 기본적으로 제공되는 사용자 계정 / [47:38] my-sql_secure_installation / [48:03] my-sql 데이터베이스 / [48:35] informatin schema 데이터베이스 / [49:23] performance schema 데이터베이스 / [50:38] 불필요한 권한 삭제 / [50:50] 테이블 살펴보기 / [52:27] flush privileges / [53:00] 새로운 데이터베이스와 사용자 생성 / [53:25] 데이터베이스 생성과 문자셋 지정 / [53:55] 기존 데이터베이스 삭제 / [54:17] 새로운 사용자 생성과 권한 부여 / [56:24] 관리자 계정 / [57:08] flush privileges

02 기동 및 쿼리 실행과 실행 계획 분석
테이블 생성 및 변경/오프라인, 온라인 스키마 변경/Lock, Algorithm/Inplace 사용시 작업 절차/온라인 스키마 변경 작업별 처리 방식/테이블 삭제/데이터 조작/쿼리 실행 절차/옵티마이저/통계정보
55분
책갈피 : [00:00] 데이블 생성 및 변경 / [00:45] 테이블 생성 / [02:13] my.ini 파일 확인 / [02:54] 테이블 내역 확인 / [03:40] 오프라인 스키마 변경 / [04:07] Alter table / [04:43] 컬럼 추가와 인덱스 생성 / [06:35] 여러개의 스키마 변경 문장 처리 / [07:15] 간단한 스키마 변경 작업 / [07:44] 온라인 스키마 변경 / [08:38] 테이블 생성 / [09:38] 마리아DB 5.5에서 실패하는 문장 / [10:21] 마리아DB 10.0 / [11:01] InnoDB, TokoDB / [11:09] 온라인 처리 가능한 명령 / [11:26] 존재하는 컬럼의 길이를 늘리는 온라인 스키마 변경 / [12:36] 개선 계획에 포함된 온라인 스키마 변경 / [13:02] 개선 계획에 포함되지 않은 온라인 스키마 변경 / [13:28] InnoDB, XtraDB / [13:41] My-sql의 온라인 스키마 변경 / [14:13] Lock절, Algorithm절 / [14:40] Lock절에 올 수 있는 사항 / [15:25] Algorithm절에 올 수 있는 사항 / [16:15] Inplace 사용시 작업 절차 / [18:10] Online alter log / [19:02] Copy / [19:42] 온라인 스키마 변경 작업별 처리방식 / [21:24] 외래키 생성 및 주의사항 / [23:08] 프라이머리 키 추가 및 삭제 / [25:00] Inplace / [25:32] auto_incriment / [26:39] 온라인 스키마 변경에 실패하는 경우 / [28:23] pt-online-schema-change 툴 / [29:41] actor / [32:12] 테이블 삭제 / [33:00] 버퍼풀에서 해당 테이블 페이지 제거 / [33:36] 디스크에서 물리적 데이터 파일 삭제 / [34:25] 데이터 조작 / [34:52] 기본데이터베이스 설정(use) / [35:05] 테이블 생성과 데이터 입력 / [35:57] on duplicate key update / [36:38] 데이터 변경 / [37:08] select문 / [37:23] select 문장에서 원하는 컬럼만 조회 / [37:36] My-sql 클라이언트 프로그램을 사용할 경우 / [38:00] update문 / [38:23] replace문 / [39:54] delete문 / [41:07] 실행 계획 분석 / [42:14] 쿼리 실행 절차(sql파싱 단계) / [43:12] 쿼리 실행 절차(최적화 및 실행계획 수립 단계) / [44:05] 쿼리 실행 절차(데이터 읽기 단계) / [44:49] 쿼리 파서와 옵티마이저 / [45:07] 옵티마이저 종류(RBO, CBO) / [46:50] 통계정보 / [47:47] my-sql 5.6 통계정보 / [48:50] stats_persistent / [50:41] use / [51:06] select문을 사용한 조회 / [51:43] 통계정보 수집 경우 / [52:50] innodb_stats_auto_recalc / [53:53] innodb_stats_sample_pages

03 통계정보
MaroaDB 10.0 통계정보/히스토그램 통계정보/조인 옵티마이저 옵션
58분
책갈피 : [00:05] MariaDB 10.0 통계정보 살펴보기 / [00:29] 테이블의 통계정보가 다른형태로 관리될 때의 문제점 / [01:23] 통합된 통계정보를 관리할 수 있는 기능 제공 / [01:55] 동계정보가 부정확할 경우 / [02:14] MariaDB 10.0 통계정보를 관리하는 3가지 테이블 / [02:52] table_stats구조 / [03:12] db_name, table_name, cardinality / [03:23] column_stats의 구조 / [03:49] nulls_ratio / [04:27] index_stats의 구조 / [04:38] prefix_arity / [05:00] avg_frequency / [05:46] use_stat_tables시스템 / [06:00] 기본값 never로 설정할 경우 / [06:30] complementary로 설정할 경우 / [07:27] preferably로 설정할 경우 / [07:59] innodb_stats_auto_recalc시스템 설정 변수 / [08:33] show global variables명령 / [09:07] table_stats조회 / [09:28] analyze table명령 실행 / [10:03] use_stat_tables시스템 설정값 확인 / [10:54] persistent for를 이용해 columns과 indexes선택 / [11:50] analyze table tbl persistent for all로 지정할 경우 / [12:11] 히스토그램 통계정보 / [12:35] 히스토그램이 없는 경우 / [14:30] Heigh-Balanced Histogram / [15:09] Heigh-Balanced Histogram의 그림 참조 / [16:37] 테스트를 위해 예제 데이터 로드 / [16:52] 코드내용 확인 / [17:22] 데이터베이스 생성 후 테이블 생성 / [17:51] source employees.sql실행 / [18:11] 불필요한 인덱스를 삭제하는 쿼리 / [18:29] show tables로 생성된 테이블 확인 / [18:48] use_stat_tables의 값 preferably로 변경 / [19:30] mysql.table_stats에 데이터 생성 확인 / [21:10] 히스토그램 자세히 살펴보기 / [21:36] histogram varbinary(255) / [22:07] 알파 값 / [22:51] histogram_type변수 / [23:22] 히스토그램 데이터 보기 / [23:52] decode_histogram함수 제공 / [24:59] hist_size설정값 / [26:03] salaries조회 / [26:55] histogram값 확인 / [28:11] mariaDB에서 histogram사용하는 방법 / [28:36] histogram_size설정 기본값 / [29:55] analyze table명령 사용 / [30:41] column_stats의 내용 확인 / [31:41] optimizer_use_condition_selectivity / [34:22] optimizer_selectivity_sampling_limit / [35:15] select문장 보기 / [36:15] 실제 조회 결과 / [37:07] histogram_size를 100으로 설정 / [38:00] 조인 옵티마이저 옵션 / [38:12] Exhaustive, Greedy / [38:45] 옵티마이저 옵션이 Exhaustive일 때 / [40:07] Greedy방법 / [42:52] optimizer_search_depth / [44:15] optimizer_search_depth설명 / [46:43] optimizer_prune_level설명 / [48:43] create table / [49:21] show tables로 조회 / [49:30] 시스템 변수 설정 / [50:07] select문 날리기 / [51:00] optimizer_search_depth의 max값인 62설정 / [51:52] profile기능 살펴보기 / [52:30] show profiles이용 / [53:21] statistics의 소요 시간 / [54:30] 통계정보를 볼 때 주의할 점

04 실행 계획 분석 part1
EXPLAIN/id/select_type/table
50분
책갈피 : [00:04] 실행 계획 분석을 위해 통계정보 수집 / [00:26] employees db에 속한 table에 대해 analyze / [00:37] analyze를 할 때 주의할 점 / [00:56] mysql.table_stats통계 테이블 드랍 / [01:11] Msg_text확인 / [01:47] mysql_upgrade / [02:15] 다른 디렉토리에 설치한 경우 주의할 점 / [03:23] 테이블 복구 후 analyze / [03:45] optimizer_switch시스템 설정 변수 / [04:09] 조회하기 / [04:30] set명령을 통해 옵션 변경 / [04:46] 조회하기 / [05:12] global과 session선택적으로 지정 / [05:30] Explain명령 / [06:27] 확인할 select쿼리 문장 입력 / [07:00] 표 형태로된 결과 표시 / [07:30] 실행하는 순서 / [09:13] update, insert, delete문장 / [09:43] 각 컬럼 살펴보기 / [10:07] id / [11:01] 단위 쿼리 / [11:24] from절에 여러개의 테이블이 올 경우 / [12:30] select_type / [13:01] select_type컬럼에 표시될 수 있는 값 / [13:37] simple / [14:20] primary / [15:00] union / [15:48] derived로 표시 / [16:33] dependent union / [17:03] in과 서브쿼리 안에 union이 들어있는 쿼리 예제 / [18:15] 내부 쿼리가 외부의 값을 참조해서 처리 / [20:26] union result / [21:15] 예제 쿼리의 실행 계획 확인 / [21:52] subquery / [22:07] from절 이외에서 사용되는 subquery만을 의미 / [23:15] nested query / sub query / derived / [24:14] scalar sub query / row sub query / [25:00] dependent subquery / [26:45] derived / [27:37] 메모리나 디스크에 임시 테이블 생성 / [28:37] from절이 subquery를 조인으로 처리하는 형태 / [29:29] derived형태의 실행 계획을 조인 형태로 변경 / [30:11] 실행 계획을 보고 쿼리 튜닝 / [31:03] uncacheable subquery / [31:33] subquery와 dependent subquery의 캐시방법 알아보기 / [32:15] subquery와 uncacheable subquery의 차이점 / [32:44] 캐시를 사용하지 못하도록 하는 요소 / [32:59] not-deterministic 속성의 스토어드 루틴 / [33:14] uuid함수, rand함수 / [33:49] uncacheable union / [34:22] materialized / [36:19] table에 subquery2 / [36:42] insert / [37:37] insert문장이 실행될 때 / [38:22] update문장의 예제 / [38:52] simple이라고 출력 / [39:15] table 컬럼 / [40:14] from절이 없어도 쿼리 실행 / [41:00] , / [42:22] 쿼리를 이용해서 실행 계획을 보고 실행 계획 분석 / [43:15] 첫번째 라인의 테이블 / [43:37] id가 2번인 라인 확인 / [44:19] id확인 / [45:00] derived2테이블을 먼저 읽어서 emp테이블로 조인 실행 / [45:28] 주의점 / [46:00] 임시 테이블의 별칭 / [46:30] type 컬럼 살펴보기 / [47:19] 조인 타입 / [47:50] type컬럼의 표시되는 값 / [48:30] All을 제외한 나머지는 index를 사용하는 접근방법 / [49:04] index_merge를 제외한 나머지 접근방법은 하나의 index만 사용

05 실행 계획 분석 part2
Type의 종류/possible_keys/key/key_len/ref/rows
56분
책갈피 : [00:15] type 컬럼 자세히 알아보기 / [00:37] system / [01:00] test라는 테이블 생성 / [01:33] tb_dual에서 select / [02:00] const / [02:42] 타입 확인 / [02:53] dept_emp의 구조 / [03:30] 타입 ref / [04:09] dept_no와 emp_no 둘 다 주었을 경우 / [05:08] subquery 확인 / [05:30] 실제 조회 했을 경우 / [05:46] eq_ref / [06:25] 여러 테이블이 조인되어있는 예제 / [07:15] 실행계획 살펴보기 / [08:16] ref / [09:07] dept_emp에서 dept_no만 조건을 주고 select / [09:50] ref컬럼에 대한 값 확인 / [10:13] const, eq_ref, ref 비교 / [11:13] 동등, 비교 연산자 / [12:07] fulltext / [13:05] match against구문 / [14:33] 전문 검색용 인덱스 / [14:52] where절의 조건 확인 / [15:54] 실행계획 살펴보기 / [16:07] const타입이 없을 경우 / [16:17] 결과 확인 / [18:06] ref_or_null / [18:48] unique_subquery / [20:26] index_subquery / [21:29] range / [21:52] 부등호, is null, between, in like연산자 / [23:29] index_merge / [24:00] index_merge접근 방법의 특징 / [25:22] 예제 확인 / [26:10] index / [27:26] index접근 방법 사용의 경우 / [28:22] order by / [29:06] limit조건 / [29:26] ALL / [30:21] Read Ahead기능 / [31:37] possible_keys 컬럼 / [32:15] 실행했던 예제 확인 / [33:07] key 컬럼 / [33:37] 실행계획 확인 / [33:59] key 컬럼에 표시된 값이 primary인 경우 / [34:15] type 확인 / [34:30] 테스트 했었던 쿼리 확인 / [35:45] key_len 컬럼 / [36:45] dept_emp의 구조 / [37:07] select문 확인 / [37:22] dept_no만 조건으로 가지고 있는 쿼리의 실행계획 확인 / [37:42] key_len의 값 / [38:43] dept_no조건과 함께 emp_no도 사용한 쿼리확인 / [40:06] ix_todate 인덱스 / [40:22] key_len에 값이 4가 출력된 이유 / [41:00] key_len에서 주의할 점 / [41:37] 5.1이상의 버전과 5.0이하의 버전 차이 / [42:58] 두버전의 차이를 보이는 이유 / [43:45] condition push down기능 / [43:52] ref 컬럼 / [44:12] 상수값을 지정했을 경우 / [44:37] 동등 조인 / [45:00] 주의 깊게 봐야할 ref 컬럼의 값 / [45:49] 산술표현식을 사용해 만든 쿼리 / [46:59] rows 컬럼 / [47:43] rows 컬럼에 나오는 값 / [48:36] 쿼리 확인 / [49:20] rows 컬럼 확인 / [50:21] 실행계획의 타입 확인 / [51:00] extra 컬럼 / [52:07] const row not found / [52:45] distinct / [54:01] 실행계획 그림 확인

06 실행 계획 분석 part3
Extra 칼럼에서 쓸 수 있는 문장을 살펴봅니다.
58분
책갈피 : [00:10] Full scan on NULL key / [00:38] NULL을 알 수 없는 값으로 정의 / [01:56] 예제 보기 / [02:38] 쿼리의 조건에 col1 is NOT NULL지정 / [03:43] Impossible HAVING / [03:59] 예제 보기 / [04:26] e.emp_no / [05:00] Impossible WHERE / [05:28] where조건 / [05:46] Impossible WHERE noticed after reading const tables / [06:57] MariaDB가 실행계획을 만드는 과정에서 쿼리의 일부분 실행 / [07:30] 예제 쿼리를 실행했을 경우 / [08:01] No matching mi/max row / [08:50] min이나 max의 결과는 null값을 반영 / [09:03] 데이터가 없게 만드는 조건 찾기 / [09:54] no matching row in const table / [10:16] Impossible WHERE와 같은 종류 / [11:03] No tables used / [11:28] from절이 없는 쿼리 허용 / [12:09] dual테이블 사용 / [12:39] Not exists / [13:01] NOT IN(subquery)형태나 NOT EXISTS연산자 사용 / [14:50] Not exists메시지 표시 주의점 / [15:26] Range checked for each record(index map:N) / [16:00] 조인 조건 / [18:02] 증가 시키며 처리 상황 보기 / [18:30] index와 관련된 번호 / [19:11] index의 순서 / [19:45] type은 ALL로 표시 / [20:36] 복잡한 index map의 예제 / [21:00] (index map: 0x19)일 경우 / [21:21] 이진법 비트배열 해석 / [23:18] global status중에 select_range_check확인 / [23:33] Scanned N databases / [23:52] INFORMATION_SCHEMA 데이터베이스가 제공 / [25:00] 개선된 조회를 통해 메타정보를 검색할 경우 / [25:21] N의 의미 / [26:32] where조건 보기 / [27:15] Select tables optimized away / [27:51] MyISAM테이블 / [28:22] 두가지 쿼리 확인 / [28:48] 실행 계획 확인 / [29:06] employees CREATE TABLE 문장 확인 / [29:52] salaries CREATE TABLE 문장 확인 / [30:45] Skip_open_table, Open_frm_only, Open_trigger_only, Open_full_table / [31:18] 테이블의 메타정보가 저장된 파일 / [31:56] 각각의 의미 알아보기 / [33:00] unique row not found / [33:30] 예제의 test1과 test2의 테이블 / [34:13] on절과 where절 확인 / [35:20] Using filesort / [36:04] order by가 사용된 쿼리의 실행 계획에서 확인 / [36:42] 실행 계획 확인 / [37:07] Using index(커버링 인덱스) / [38:29] 예제의 first_name은 index가 있고 birth_date는 index가 없는 상태 / [38:58] ix_firstname을 검색해서 일치하는 레코드 검색 / [40:07] 동일한 쿼리문의 birth_date는 생략된 예제 / [41:13] Using index메시지 출력 / [41:49] 클러스터링 인덱스 보조인덱스:+프라이머리키값 / [43:07] emp_no를 포함한 예제 / [43:44] 추가 컬럼을 가지는 효과 / [44:37] 실행 계획의 타입 컬럼, 접근 방법 / [45:04] eq_ref, ref, rang, index_merge, index / [46:45] Using index for group-by / [47:37] group-by처리가 index를 이용할 때 / [48:45] 타이트 인덱스 스캔(인덱스 스캔) / [50:07] 루스 인덱스 스캔 / [51:34] salaries CREATE TABLE 문장 확인 / [53:12] group-by에서 index를 사용하기 위한 방법 / [53:52] where절이 없는 경우 / [54:21] where절 인덱스 사용 불가 / [54:52] 쿼리 확인 / [55:07] employees구조 다시 확인 / [55:30] where절 인덱스 사용 가능

07 실행 계획 분석 part4
Extra 칼럼에서 쓸 수 있는 문장을 살펴봅니다.(2)
57분
책갈피 : [00:03] Using join buffer / [00:19] join되는 컬럼의 index설명 / [01:11] dept_emp와 employees를 join하는 예제 / [02:00] de테이블의 비효율적인 검색 보완 / [02:23] 읽은 레코드를 임시로 저장하는 메모리 공간 / [02:42] join_buffer_size 시스템 설정 변수 / [04:00] Using join buffer / [04:15] BNL join / [05:24] Batched Key Access / [05:55] Using sort_union, Using union, Using intersect, Using sort_intersection / [06:30] Using union설명 / [06:53] Using sort_union설명 / [07:27] Using intersect설명 / [07:46] Using sort_intersection설명 / [08:31] Using sort_union, Using union은 index를 사용하는 조건이 or로 연결된 경우 사용 / [09:20] Using sort_union, Using union의 차이 / [09:52] Using temporary / [10:20] 임시테이블을 사용했을 경우 표시 / [10:37] employees에서 조회 / [10:56] 임시테이블 필요 / [11:37] 임시테이블을 생성하는 쿼리 / [13:18] Using where / [13:45] 스토리지엔진 / [14:01] MySQL엔진(조인, 필터링, 집합처리) / [14:46] 실제 작업범위 제한 조건 / [16:03] Extra에 나오는 Using where / [17:18] 실행계획에 filtered컬럼을 표시하고 분석 / [17:37] index의 최적화 살펴보기 / [19:22] MySQL엔진과 스토리지엔진의 문제점 / [20:18] 작업범위 제한 조건으로 사용되지 못하는 조건 / [22:03] 이원화된 구조의 불합리 제거를 위한 방법 / [22:44] Condition push down기능 / [22:52] Using where with pushed condition / [23:41] NDB Cluster 스토리지엔진을 사용하는 테이블에 표시 / [24:06] SQL노드, Data노드 / [24:37] Deleting all rows / [25:10] where조건절이 없는 delete문장의 실행계획에 표시 / [25:56] 테이블의 모든 레코드 삭제 / [26:22] 핸들러함수 호출로 처리 / [26:48] 비교를 위해 delete문에 where조건 주기 / [27:15] FirstMatch / [27:56] IN을 EXISTS로 바꿔서 처리 / [28:56] 실행계획 확인 / [29:52] LooseScan / [31:41] 중복된 레코드를 제거할 수 있는 경우 사용 / [32:22] Materialize / [33:07] 쿼리 실행 계획의 select_type / [33:22] Scan / [33:45] Start materialize, End materialize, Scan / [34:20] Start temporary, End temporary / [34:43] Duplicate Weedout최적화 / [35:15] Using index condition / [36:29] Extra에 Using where출력 / [37:52] Extra에 Using index condition출력 / [38:37] Index Condition Pushdown / [38:52] Rowid-ordered scan, Key-ordered scan / [39:07] MRR추가 / [40:14] 랜덤데이터 파일 읽기의 횟수 줄이기 / [41:00] employees에서 모든 정보를 조회한 쿼리 / [41:45] Extra에 xtra에 Rowid-ordered scan출력 / [42:20] 사용된 MRR최적화 / [42:45] Key-ordered scan설명 / [44:37] 실행 계획의 Extra컬럼-BKAH join / [45:19] join_cache_level 시스템 설정값 조절 / [45:37] No matching rows after partition pruning / [47:22] EXPLAIN EXTENDED / [48:28] Filtered col추가 / [49:12] 실행 계획의 filtered col / [50:14] EXPLAIN EXTENDED (추가 옵티마이저 정보) / [50:59] 추가된 select문 확인 / [51:52] show warnings명령 / [52:43] 상수로된 값 Georgi사용 / [53:13] EXPLAIN PARTITIONS / [54:57] 실행 계획 확인 / [55:15] Partition pruning / [56:15] to_days함수

08 옵티마이저 힌트와 실행 계획 분석 시 주의사항
straight_join/use index/force index/ignore index/sql_cache/sql_no_cache
56분
책갈피 : [00:11] 옵티마이저 힌트 / [01:07] 힌트의 사용법 / [01:25] 힌트를 잘못사용할 경우 오류 발생 / [02:42] create table문장 / [03:12] 주석 시작마크 뒤에 명시되어있는 숫자 / [03:36] 해당 버전 이상과 이하의 경우 / [04:30] 버전별 주석 / [05:10] MariaDB버전 / [06:46] 많이 사용되는 옵티마이저 힌트 / [07:00] STRAIGHT_JOIN / [07:30] 여러개의 테이블이 join되는 경우에 join의 순서 고정 / [08:56] 쿼리의 join순서를 변경하고 싶은 경우 / [09:24] 실행계획 확인 / [09:39] STRAIGHT_JOIN 힌트 / [10:31] from절의 테이블 순서가 변경된 쿼리 / [11:11] 실행계획 확인 / [11:43] 첫번째 예제와 두번째 예제의 성능의 차이 / [12:39] 레코드를 처리하는 횟수 차이 / [13:03] STRAIGHT_JOIN의 기준 / [13:18] 임시테이블과 일반테이블의 조인 / [14:03] 임시테이블끼리의 조인 / [14:26] 일반테이블끼리의 조인 / [15:18] 예제 확인 / [16:37] 인덱스 힌트 / [17:10] USE INDEX(primary)라고 힌트 / [17:48] USE INDEX / FORCE INDEX / IGNORE INDEX / [18:22] USE INDEX설명 / [18:56] FORCE INDEX 설명 / [20:15] IGNORE INDEX 설명 / [20:48] 인덱스 힌트는 용도 지정 가능 / [21:11] USE INDEX FOR JOIN / [21:47] USE INDEX FOR ORDER BY / [21:59] USE INDEX FOR GROUP BY / [22:22] 인덱스를 사용한 예제 / [25:45] 인덱스의 사용법이나 실행계획을 판단하기 어려울 경우 / [26:30] SQL_CACHE / SQL_NO_CACHE / [27:03] query_cache_type값 / [27:45] 0(off), 1(on), 2(demand) / [28:07] 힌트와 변수값의 조합 / [30:33] 예제 확인 / [30:52] 동일한 내용을 실행시켜 각 쿼리의 시간 측정 / [32:07] 쿼리의 성능, 처리방식을 판단하기 어려운 문제점 / [32:49] SQL_NO_CACHE 힌트 사용 / [33:15] SQL_CALC_FOUND_ROWS / [34:35] FOUND_ROWS 함수 사용 / [34:57] 힌트 사용시 주의점 / [35:15] 예제 비교해서 확인 / [36:22] 첫번째 예제 쿼리를 두번 실행 / [41:07] 시랭 계획 분석 시 주의사항 / [42:07] select_type 칼럼의 주의 대상 / [42:22] DERIVED / [42:57] UNCACHEABLE SUBQUERY / [43:37] DEPENDENT SUBQUERY / [44:22] Type 칼럼의 주의 대상 / [44:30] ALL, INDEX / [45:07] Key 칼럼의 주의 대상 / [45:37] Rows 칼럼의 주의 대상 / [45:52] 실제보다 큰 값이 표시될 때 / [46:30] Rows 칼럼의 수치값 / [47:04] Extra 칼럼의 주의 대상 / [47:52] 쿼리가 요건을 제대로 반영하고 있는지 확인해야 하는 경우 / [48:04] Full scan on NULL key / [48:30] Impossible HAVING / [48:45] Impossible WHERE / [49:00] Impossible WHERE noticed after reading const tables / [49:30] No matching min/max row, No matching row in const table / [49:50] Unique row not found / [51:00] 쿼리의 실행 계획이 좋지 않은 경우 / [51:13] Range checked for each record / [51:51] Using filesort / [52:13] Using join buffer / [52:22] Using temporary / [52:36] Using where / [53:59] 쿼리의 실행 계획이 좋은 경우 / [54:19] Distinct / [54:35] Using index / [54:50] Using index for group-by

09 최적화 part1
풀 테이블 스캔/Order by 처리/Group by 처리
1시간 1분
책갈피 : [00:05] 최적화 단위작업 살펴보기 / [01:17] 풀테이블스캔 사용법 설명 / [01:38] 풀테이블스캔 설정조건 / [01:43] 테이블 레코드 수 설명 / [02:02] 인덱스조건 설명 / [02:11] 조건일치 건 설명 / [02:51] MariaDB에서 풀테이블스캔 설명 / [03:39] InnoDB,설명 / [03:54] Read ahead설명 / [05:10] XtraDB 설명 / [05:46] Order by 설명(Using Filesort) / [06:35] Index 함수 장단점 / [07:19] Filesort 함수 장단점 / [08:44] 별도정렬작업처리 확인방법 / [09:02] 정렬처리방법확인 / [09:17] 소트버퍼 설명 / [10:41] 소트버퍼 문제상황 설명 / [11:49] Multi-merge설명 / [12:42] 소트버퍼 적정용량 / [12:54] MariaDB 메모리안내 / [14:02] Oom-Killer 설명 / [14:25] 정렬 알고리즘 설명 / [14:49] Single pass 설명 / [15:54] Two pass 설명 / [18:03] Two pass 사용예 / [18:24] Single pass 사용예 / [18:45] 정렬처리방식 설명 / [19:08] 인덱스 사용한 정렬 설명 / [19:52] 드라이빙 테이블만 정렬 설명 / [19:59] 조인결과를 임시테이블에서 정렬 설명 / [21:05] 인덱스 사용한 정렬사용예 / [23:11] Order by 유.무 예제확인하기 / [26:01] 드라이빙테이블만 정렬 사용예 / [26:45] where절 조건 확인 / [28:16] 드라이빙테이블만 정렬방법 / [28:51] 임시테이블을 이용한 정렬 설명 / [29:56] 예제확인하기 / [30:55] 실행계획확인 / [31:21] 정렬방식의 성능비교 / [32:44] Streaming방식 설명 / [33:04] Streaming 예제확인 / [35:33] Streaming 주의할점 / [37:49] Buffering방식 설명 / [39:17] 인덱스 사용 정렬만 Streaming사용 / [41:04] Order by..Limit n 최적화 설명 / [42:12] 예제 보기 / [43:22] 소트버퍼에 우선순위 큐 만들기 / [45:24] 실행계획보기 / [45:41] 상태변수 설명 / [46:06] 예제 보기 / [47:14] Sort_merge_passes 설명 / [47:21] Sort_range 설명 / [47:33] Sort_scan설명 / [47:53] Sort_raws 설명 / [48:54] Group by설명 / [50:23] 인덱스 스캔이용 Group by 설명 / [51:43] Loose 인덱스 스캔이용 Group by설명 / [52:08] 예제보기 / [54:58] Prefix index설명 / [56:05] 예제로 Loose 유.무 따른결과보기 / [57:55] 임시테이블을 사용하는 Group by설명 / [58:15] 예제살펴보기 / [58:58] 실행계획 확인

10 최적화 part2
Distinct 처리/임시 테이블/인덱스 컨디션 푸시다운/멀티 레인지 리드
56분
책갈피 : [00:04] Disrinct처리 / [01:12] Select Distinct 설명 / [01:40] 예제보기 / [02:05] 실행계획 살펴보기 / [04:10] 집합 함수와 함께 사용된 Distinct설명 / [04:35] 예제보기 / [06:18] count함수 추가 / [07:27] 3가지 Distinct 비교 / [08:19] 임시테이블 설명(Using temporary) / [09:13] Memory 스토리지엔진 설명 / [09:18] Aria 스토리지엔진 설명 / [09:23] MyISAM 스토리지엔진 설명 / [10:38] 임시테이블이 필요한쿼리 설명 / [13:17] 임시테이블이 디스크에 생성되는 경우 / [15:23] 실행계획 확인 / [16:42] 임시테이블을 사용할수있도록 실행확인 / [17:09] Created_tmp%tables 조회 / [17:29] Created_tmp_tables 설명 / [17:56] Created_tmp_disk_tables설명 / [18:41] 인덱스를 가지는 내부 임시테이블 설명 / [19:37] 예제보기 / [22:28] Optimizer_switch 설정변수값확인 / [22:43] Intrnal Temporary Table의 주의사항 / [23:18]예제보기 / [24:06] 실행계획 내부적 작업과정 확인 / [26:52] 시스템설정변수 크게사용하지않기 / [28:31] 인덱스 컨디션 푸시다운 설명(ICP) / [29:00] Test하기 / [29:38] Optimizer_switch 결과보기 / [29:56] 실행계획살펴보기 / [31:49] Index내용 살펴보기 / [36:19] Optimizer_switch조건 return / [36:30] 결과확인 / [36:57] 멀티 레인지 리드 설명(mrr) / [37:22] 데이터보며 설명 / [40:53] Mrr버퍼를 복사해서 정렬 / [41:56] 옵션mrr,mrr_sort_keys 사용 / [42:26] RowID 기준정렬방법 확인 / [43:54] 예제확인 / [47:26] Key 기준 정렬방법 확인 / [48:03] 테이블구조확인 / [50:58] mrr사용위해 활성화 / [51:47] Key-ordered scan 정렬이유 설명 / [52:51] Key와 RowID 모두 정렬 설명 / [53:13] 예제확인 / [54:24] Dept_emp 테이블구조 확인 / [56:11] Key-ordered Rowid-ordered scan 확인

11 최적화 part3
멀티 레인지 리드/인덱스 머지/테이블 조인
54분
책갈피 : [00:04] Multi range read 최적화와 정렬 / [00:39] Order by first_name추가된 예제보기 / [01:26] 기존예제에 Order by절 추가 실행계획보기 / [01:50] 기존예제에 세가지 수정된 예제보기 / [02:29] 세가지예제 비교분석 / [05:13] 멀티레인지리드 최적화 주의사항 / [05:41] 데이터크기 감안 설명 / [06:04] Litmit n 설명 / [06:26] 메모리공간 주의 설명 / [07:42] 조인 버퍼 주의 설명 / [08:59] 상태변수 주의 설명 / [09:11] 상태변수 확인방법 / [09:29] 커리실행 / [10:39] 멀티레인지리드 사용설명 / [10:59] 인덱스머지(Index merge)알아보기 / [11:02] 인덱스머지(Index merge) 설명 / [12:15] Employees에서 조회 / [13:10] Ix_fristname 적용 / [14:08] First_name과 hire_date 각 count보기 / [14:45] 실행계획 보기 / [15:37] 엑스트라칼람에 꼭 필요한 알고리즘 / [15:53] Using union 사용 / [17:17] 병합 설명 / [17:28] 조건사이 or연산자와 and연산자 차이점 / [18:27] 중복제거 우선순위 Q설명 / [20:25] Using sort_union 알고리즘 설명 / [21:42] 예제의 실행계획보기 / [21:48] Using sort_union 사용설명 / [22:00] Using intersect 설명 / [22:32] 예제보기 / [22:47] 실행계획보기 / [23:55] Using sort_intersect 알고리즘 설명 / [25:11] 예제보기 / [25:57] 디폴트 설정시 주의사항설명 / [26:19] 테이블조인 설명 / [26:52] 조인의 종류 / [27:40] Inner join 설명 / [27:56] Outer join 설명 / [28:21] 세미조인, 안티조인 설명 / [29:03] Inner join 사용예제 보기 / [31:08] Outer join 사용예제 보기 / [32:37] Inner join과 Outer join 예제보기 / [33:51] Full outer join설명 / [34:00] 예제보기 / [35:56] Full outer join 지원불가안내 / [36:15] left outer join사용시 주의사항 / [38:21] MariaDB 최적화단계에서 수정 / [39:58] 카테시안조인 설명 / [40:43] Join 테이블 비교예제 / [42:57] Cross join 설명 / [43:41] 예제보기 / [44:25] Natural Join 설명 / [44:34] 예제보기 / [45:23] using키워드 사용할수 있는예 / [47:11] 조인 알고리즘 살펴보기 / [47:52] 블록기본 조인알고리즘 설명 / [48:15] Flat방식 설명 / [48:23] Incremental 방식 설명 / [49:12] Optimier_switch 설정변수 사용방법 / [50:49] Join_chche_level 설정변수 사용방법 / [52:35] Join_chche_level 0~8 설정에 따른결과 / [53:14] Outer Join 블록알고리즘 설정방법

12 최적화 part4
테이블 조인/조인 알고리즘/서브 쿼리/세미조인
55분
책갈피 : [00:12] 조인 버퍼 설정 / [00:46] Join_buffer_size 설명 / [01:14] join_cache_space_limit 설명 / [01:31] Optimize_join_buffer_size= on설정 / [02:15] 단순 네스티드 루프 (NL) 설명 / [03:30] Single_sweep multi join 커리설명 / [04:06] 실행계획보기 / [05:10] 단순네스티드루프와 블록네스티드루프 차이점 / [05:59] 예제안에 join에 대한 설명 / [07:10] 조인버퍼의 필요성 / [07:58] dept_emp ix 인덱스 이용 / [08:10] 인덱스통해 dept_emp 접근 / [08:23] Employees 테이블에 접근 / [08:57] 데이터보기 / [09:44] 조인버퍼사용시 달라지는점 확인 / [10:46] Join이 완료되면 조인버퍼 자동해지 / [10:54] 구체적인 방법 보기 / [11:34] Employees 테이블에 해당조건 검색 / [11:43] 조인버퍼 레코드 결합해서 반환 / [11:56] 쿼리 실행계획 순서 확인 / [13:21] MariaDB 5.3버젼 개선점 설명 / [13:28] 개선점에 대한 장점 / [13:56] 조인버퍼의 incremental 모드 설명 / [15:04] 아우터조인 설명 개선점 설명 / [15:48] 세미조인 설명 개선점 설명 / [15:54] 블록 네스티드 루프 해시 조인 설명 / [16:45] 실행계획보기 / [16:56] Build phase 설명 / [17:21] Probe phase 설명 / [18:24] 실행계획보기 / [19:26] 블록 네스티드 루프 해시 개념 설명 / [20:24] 블록 인덱스 조인 설명 / [20:37] 블록 인덱스 조인은 멀티레인지 이용 / [22:16] 드리븐 테이블 읽어 리턴 / [22:37] Rowid기준 정렬설명 / [23:21] Key 기준 정렬 설명 / [24:19] Rowid와 Key 모두정렬 설명 / [25:05] 블록인덱스해시조인 설명 / [25:28] Build phase 사용 / [25:43] Probe phase 사용 / [25:57] 조인시의 주의사항 / [26:05] 조인실행결과의 정렬순서보기 / [26:58] 실행계획보기 / [29:57] Inner join과 outer join의 선택시 주의사항 / [31:29] 서브쿼리 최적화 / [32:10] 세미조인 서브쿼리 최적화 / [32:15] 인서브 쿼리보기 / [34:10] 세미조인 최적화 적용가능상황 / [36:26] Table pullout 최적화 설명 / [37:29] Employees를 풀스캔 emp칼럼 얻어오기 / [38:36] 실행계획보기 / [39:40] Show warnings 명령으로 warnings 확인 / [41:43] FirstMatch 최적화 / [42:27] 실행계획보기 / [44:15] MariaDB 10.0에서 FirstMatch의 장점 / [46:00] Correlated Subquery 최적화에 사용가능 / [46:09] Group by, 집합함수 Subquery 최적화 사용불가 / [46:54] FirestMatch 최적화 사용된경우 설명 / [47:43] Semi-join Materialization 최적화 설명 / [49:02] 실행계획보기 / [50:29] Fromdate 칼럼에 index생성 / [51:37] 실행계획보기 / [52:16] Materialization-scan/lookup 설명

13 최적화 part5 & 스토리지 엔진 part1
세미조인 서브쿼리 최적화/LooseScan 최저과/Duplicate Weedout 최적화/세미조인이 아닌 서브쿼리 최적화/서브쿼리 캐시/Aria/XtraDB/InnoDB
53분
책갈피 : [00:06] LooseScan 최적화 / [00:30] Query 보기 / [00:39] Dept_no 가져오기 / [01:51] 실행계획보기 / [02:54] Semi-join Materialization으로 실행 / [03:13] LooseScan 사용조건 / [04:43] loossecan off 설정 / [04:52] Duplicate Weedout최적화 / [06:39] 세미조인이 아닌 서브쿼리 최적화 / [07:52] Materialization 최적화 / [09:02] RowId-merge partial matching 알고리즘 / [09:24] Table-scan partial matching 알고리즘 / [10:07] Optimizer_switch on/off 로 제어 / [11:44] In-to-EXISTS 최적화 / [12:01] 예제보기 / [13:07] In_to_exists on으로 조정 / [13:22] 서브쿼리 캐시 / [13:46] 예제 실행계획보기 / [16:17] 캐시의 히트율이 낮은경우(HitRatio<02) / [16:31] 캐시의 히트율이 적정수준(0.2<=HitRatio<0.7) / [16:56] 캐시의 히트율이 높은경우(HitRatio>=0.7) / [17:24] 스토리지 엔진 설명 / [18:34] Aria 스토리지 엔진 / [18:41] MyISAM 장.단점 / [20:30] 트랜잭션 옵션 설명 / [22:19] 페이지캐시 설정 / [24:24] 시스템 설정 변수 / [24:38] Aria_pagecache_buffer_size / [24:48] Aria_sort_buffer_size / [25:40] Aria_group_commit,aria_group_commit_interval / [26:25] Aria_block_size / [26:52] Aria_used_for_temp_tables / [27:37] XtraDB 스토리지 엔진 / [29:29] InnoDB와 XtraDB 스토리지 엔진교체 / [31:03] InnoDB와 XtraDB 스토리지 엔진교체방법확인 / [32:27] My.ini 초기파일 확인 / [33:18] Ignore_builtin_innodb=on설정 / [33:23] Plugin-load=ha_innodb.dll 설정 / [33:35] MaraiaDB로 변경부분확인 / [34:43] InnoDB에서 스토리지엔진교체방법 / [34:46] My.ini초기파일 확인 / [34:50] Ignore_builtin_innodb=on 주석풀기 / [34:53] Plugin-load=ha_xtradb.so 주석풀기 / [35:33] InnoDB 스토리지 엔진 / [36:20] MySQL 5.6 InnoDB 새로추가된 기능 / [37:09] 영구적 통계정보 / [39:04] 데이터 읽기 최적화 / [39:59] Kernel mutex / [42:24] Multi threaded purge / [42:52] Query보기 / [45:24] MVCC,롤백->Undo영역 / [45:45] 메인스레드 / [46:13] Innodb_purge_threads / [47:28] 독립된 플러시 스레드 / [49:51] 가변페이지사이즈 / [52:27] Mysqldump,SELECT INTO..OUTFILE

14 스토리지 엔진 part2
InnoDB 스토리지 엔진/더티 페이지 플러시/InnoDB 버퍼 풀과 리두 로그의 관계
52분
책갈피 : [00:02] 테이블 스페이스 복사 / [01:10] *ibd만 가져오고나 복구가능 / [01:18] 테스트용만들기 / [01:41] Flush tables tb_trans2 for export / [02:41] Unlock tables 명령 / [03:12] DISCARDTABLESSOACE 명령 / [04:05] IMPORT TABLESPACE 명령 / [04:17] Select로 tb_trans1 확인 / [04:58] 독립된 언두 스페이스 / [06:07] Innodb_undo_directory 설명 / [06:37] Innodb_undo_tablespaces설명 / [07:35] Innodb_undo_logs 설명 / [09:02] 읽기전용 트랜잭션 최적화 / [11:52] 버퍼 풀 덤프 & 로드 / [14:05] Innodb_auto_lru_dump 사용 / [14:29] Xtradb_admin_command 사용 / [18:12] Innodb_buffer_pool_pages_date / [19:24] Innodb_blocking_buffer_pool_testorm / [19:56] MySQL 5.6 덤프하는 방법 / [21:10] Innodb_buffer_pool_damp_new / [21:54] Innodb_buffer_pool_load_new / [22:26] Innodb_buffer_pool_dump_at_shutdown / [22:48] Innodb_buffer_pool_load_at_startup / [23:15] 명령 사용 결과보기 / [24:29] Innodb_buffer_pool_load_abort / [24:40]리드로그사이즈(Write Ahea Log) / [25:21] Innodb_log_file_size / [25:42] Innodb_log_files_in_gorup / [26:09] Innddb_group_home_dir / [28:28] 리두 로그 크기변경 / [29:14] MaraiDB 5.5에서 리두로그 크기변경방법 / [31:54] 데드락 이력 / [33:01] Innodb_print_all_deadlocks / [33:26] 더티페이지 플러시 / [34:07] LRU_list 설명 / [34:14] Flush_list 설명 / [34:38] InnoDB 버퍼 풀과 리두로그의 관계 / [36:52] Write ahead log / [37:22] Flush_list / [38:11] LRU리스트 / [40:04] Innodb_old_blocks_pct 변수변경 / [41:49] InnoDB와 xtraDB의 더티플러시 / [42:05] Checkpoint age 중요 / [42:42] 그림으로 설명 / [44:17] 모드에따른 상태 설명 / [47:38] MySQL 5.5 InnoDb의 더티 플러시 / [47:57] Adaptibe flushing / [50:11] Innodb_io_capacity / [50:43] Innodb_max_dirty_pages_pct

15 스토리지 엔진 part3
더티 페이지 플러시/페이지 클리너/어탭티브 플러시/버퍼 풀 성능 개선/원자 단위의 쓰기/확장된 InnoDB 엔진 상태 출력
1시간 1분
책갈피 : [00:11] MariaDB5.5 XtraDB의 더티플러시 / [01:01] Innodb_adaptib_flushing_method설정 / [01:33] Native / [01:52] Estimate / [02:53] Keep_averag / [03:37] Innodb_flush_neighbor_pages설정 / [04:16] Area / [04:37] Const / [04:49] None / [05:21] Innodb_checkpoint_age_target설정 / [06:20] Innodb_flush_method설정 / [06:28] Direct Io / [06:45] Fdatasync / [07:18] O_DSYNC / [07:42] O_DIRECT / [10:53] MySQL 5.6 InnoDB의 더티플러시 / [11:04] 마스터스레드 / [11:39] Page cleaner 스레드 / [11:51] Access Pattern : LRU_list / [12:17] Checkpoint Age : Flush_list / [14:28] Innodb_lru_scan_depth / [15:39] 플러시할 더티페이지수를 구하는 공식 / [16:33] Innodb_io_capacity / [18:00] Innodb_io_capacity_max / [19:40] 어탭티브 플러시 알고리즘 / [20:28] Innodb_adaptive_flushing_lwm / [20:59] Innodb_max_dirty_pages_pct_lwm / [21:50] Innodb_flushing_avg_loops / [24:39] MariaDB 10.0 XtraDB의 더티플러시 / [24:45] MySQL5.6 플러시할 더티페이지 수 공식 / [26:21] MariaDB10.0 플러시할 더디페이지 수 공식 / [27:04] 버퍼 풀 성능 개선 / [27:43] Non Uniform Memory access(NUMA) / [28:08] UMA아키텍처 & NUMA아키텍처 비교 / [30:55] Numactl / [31:05] Numa_interleave / [31:20] 버퍼 풀 메모리 초기할당 / [32:11] 응용 프로그램에서 접근시 할당 / [33:30] Innodb_buffer_pool_populate / [34:34] InnoDB 잠금 세분화 / [34:45] Kernel_mutex / [35:36] 분리된 mutex / [37:07] I/O 기반의 워크로드 성능 향상 / [37:31] 프리페이지 준비보다 더 빠르게 소진되는 경우 / [37:49] Free_list가 모두 소진 / [38:01] Free_list의 동기화를 위한 뮤텍스 대기가 증가 / [38:26] 프리페이지를 준비해도 뮤텍스 대기할 경우 / [39:30] Innodb_empty_free_list_algorithm / [39:55] 어댑티브 해시 파티션 / [40:47] Innodb_adaptive_hesh_index_partitions / [41:50] 원자 단위의 쓰기 / [41:54] 리두 로그 / [42:19] 파샬페이지(Torn_page) / [45:07] Innodb_use_atomic_write / [45:51] 확장된 InnoDB엔진 상태 출력 / [46:15] Innodb_show_verbose_locks / [46:27] Innodb_show_locks_held / [47:21] 설정결과보기 / [49:01] 상태변수들의 그룹 / [49:18] 백그라운드 스레드 관련 상태변수 / [50:58] 세마포어 관련 상태변수 / [54:13] 인서트 버퍼와 어탭티브 해시 인덱스 관련 상태변수 / [56:15] 로그관련 상태변수 / [57:28] 버퍼 풀 관련 상태변수 / [59:22] 트랜잭션 관련 상태변수

16 스토리지 엔진 part4
XtraDB 리두로그 아카이빙/변경된 페이지 트랙킹/전문 검색 인덱스 추가/전문 검색 인덱스를 위한 테이블 스페이스/Memcached 플러그인/카산드라 스토리지 엔진/CONNECT 스토리지 엔진
55분
책갈피 : [00:03] XtraDB 리두로그 아카이빙 / [00:14] 리두로그 / [00:49] 로그파일 ib_log_archive_(시작_lsn) / [01:12] log파일 생성 / [01:31] Purge archived logs before 삭제 명령 / [01:55] Purge archibed logs to 삭제 명령 / [03:03] Innodb_log_archive 시스템변수 / [03:15] Innodb_log_arch_dir 시스템변수 / [03:35] Innodb_log_arch_expire_sec 시스템변수 / [04:12] Incremental Backup(증분백업) / [04:51] 변경된 페이지 트랙킹 / [04:57] 리두로그 엔트리 기반 / [05:06] 특수 비트맵파일로 기록 / [05:36] Innodb_track_changed_pages 시스템변수 / [05:47] Ib_modified_log__.xdb / [06:20] 명령설명 / [07:08] Flush changed_page_bitmaps 명령 / [07:34] Reset changed_page_bitmaps 명령 / [07:45] Purge changed_page_bitmaps before 명령 / [08:01] Show engine innodb status:log / [08:44] Innodb_changed_pages / [09:03] 전문검색엔진 / [09:48] 전문 검색 인덱스 추가 / [09:55] 쿼리보기 / [10:36] Add fulltext 로 전문 인덱스 생성 / [12:08] 전문검색 인덱스를 위한 테이블 스페이스 / [12:20] Ibd 파일 생성확인 / [12:41] Fts_xxx-yyy-doc_id.ibd / [13:10] Fts_xxx_config.ibd / [13:44] Fts_xxx_stopword.ibd / [14:20] Fts_added.ibd,ftx_xxx_deleted.ibd / [15:41] Fts_being_added.ibd,fts_xxx_being_deleted.ibd / [16:33] Fts_xxx_added_chche.ibd, fts_xxx_deleted_chche.ibd / [18:02] _DOC_id.ibd 전문인덱스별로 존재 / [18:41] 전문검색 인덱스관련 Information_schema정보 / [19:34] 테이블이 가지는 내용의 범위기준 / [19:42] InnoDB의 모든전문검색 인덱스에 적용 / [20:05] Innodb_ft_cofig, innodb_ft_default_stopword / [20:14] 전문검색 인덱스를 가진 테이블 단위로 적용 / [20:19] Innodb_ft_aux_table / [20:38] 쿼리에 set명령보기 / [21:02] Innodb_ft_index_table / [21:31] Innodb_ft_index_cache / [22:17] Innodb_ft_inserted, innodb_ft_deleted / [22:33] Innodb_ft_being_inserted, innodb_ft_being_delelted / [22:40] 전문검색인덱스사용 / [22:51] 전문검색쿼리문법사용 / [23:46] 전문검색엔진사용시 주의사항 / [24:21] Innodb_ft_default_stopword / [25:24] Create table stopword_foe_emp 테이블생성 / [25:41] 데이터확인 / [26:44] Innodb_ft_user_stopword_table 생성가능 / [27:12] 단위검색어의 최소길이 / [28:12] Innodb_ft_result_cache_limit / [29:03] Innodb_ft_total_cache_size / [29:31] Memcached 플러그인 / [30:18] MariaDB5.5 에서 HandlerSocker 제공 / [30:23] My SQL5.6 에서 Memcached API 제공 / [30:38] Memcached 플러그인 / [31:57] Memcached 플러그인 제공기능 특성 / [32:17] Innodb 스토리지 엔진 접근성 / [32:24] 쿼리분석,최적,해들러 API우회 / [32:35] 텍스트,바이너리기반프로토콜 지원 / [32:45] Memcached의 value 매핑 / [32:58] 메모리조합 / [33:06] Daemon_memcached_option 시스템변수 / [33:14] Innodb_api_trx_level 시스템변수 / [33:30] 카산드라 스토리지 엔진 / [34:34] 카산드라 클러스터 / [35:38] 가십통신 / [36:39] 쓰리프트통신 설명, 단점 / [36:57] 네이티브통신 / [37:33] 다차원key value / [38:15] 로우키(col_name,value..) / [39:07] 로우키 개념 / [39:45] CQL(Cassandra Quert Lan) / [40:08] 컬럼 패밀리 / [40:40] 키 스페이스 / [41:09] CQL제약사항 / [41:43] MariaDB에 카산드라 스토리지엔진 / [42:24] 카산드라스토리엔진 활성화 / [43:00] 카산드라 스스토리엔진 시작시 자동 등록 / [43:21] Create keyspace mariadtest 설정 / [44:14] Columnfamily cf1만들기 / [46:02] Select하기 / [46:15] Cassandra-cli 클라이언트에 결과보기 / [46:54] Conneect 스토리지엔진 / [47:51] Conneect 스토리지엔진 설치 / [49:37] Oracle에 emp 파일이 존재할때 / [50:47] CONNECT BY이용 / [51:35] Engin_condition_pushdown ON설정 / [52:17] 오라클 RDBMS 테이블 연결 / [52:23] My.ino 설정파일 연결 / [52:54] Create table문 보기 / [54:17] 운영체제의 디렉터리 연결

17 스토리지 엔진 part5 & 기타 기능 part1
시퀀스 스토리지 엔진/Mroonga 전문 검색 스토리지 엔진/성능 향상/스레드 풀/관리 및 진단
58분
책갈피 : [00:04] 시퀀스 스토리지엔진 / [00:29] Show engines명령으로 설치 확인 / [00:40] 미설치시 설치 명령어 / [01:43] 시퀀스 스토리지엔진에 다른점 / [01:55] 예제보기 / [02:42] 각쿼리의 결과값 / [03:44] Convert 함수 사용 / [04:02] 시퀀스 스토리지 엔진 활용 사례 / [04:28] 누락된 번호찾기 / [04:49] Seq_test 테이블 생성 / [05:05] 시퀀스스토리지엔진 이용 / [05:10] 누락번호찾기 결과 확인 / [06:09] 순차적으로 조합된 번호 쌍 생성 / [06:14] 예제결과 확인 / [06:35] 배수 또는 공배수찾기 / [06:46] 예제결과 확인 / [07:18] 순차적인 알파벳생성 / [07:26] 예제결과 확인 / [08:15] 순차적인 날짜 생성 / [08:26] 예제결과확인 / [08:58] 데이터복제가공 / [09:50] 예제결과 확인 / [11:23] Mroonga 전문 검색 스토리지 엔진 / [12:28] Mroonga 아키텍쳐 / [13:26] 스토리지엔진모드 실행모드 / [13:47] 래퍼(wrapper)모드 실행모드 / [14:24] 인덱스알고리즘 / [14:59] 구분자(stopword)방식 / [16:44] N-gram방식 / [17:35] Front-end 인텍스, back-end 인덱스 / [18:47] 구분자방식으로 검색했을때 결과 / [19:00] N-gram방식으로 검색했을때 결과 / [19:35] Mroonga 설치방법 / [19:51] 설치버전확인 / [20:20] Storage mode에서 full text search방법 / [21:04] Full text search 결과 확인 / [21:40] Fulltex index에 comment 설정 가능 / [22:18] Tokenmecab의 옵션 / [22:54] TokenBigram / [23:24] Tokenmecab / [23:46] Tokenbigramsplitsymbol / [24:40] 기타기능 / [24:59] 성능향상 / [25:07] 스레드풀(Therad pool) / [25:15] Mysql서버의 전통적 연결 및 처리방식 / [26:56] MaraiDB의 스레드 풀 / [27:18] 스레드 개수는 동적으로 관리 / [27:32] 스레드 풀 자체의 관리비용이 낮음 / [27:37] 운영체제의 능력을 최대한 활용 / [27:55] 스레드 최대 개수 제한 / [28:19] 윈도우 mariaDB 스레드풀 / [28:20] 유닉스 mariaDB 스레드풀 / [28:36] MariaDB 스레드풀의 구조 / [30:05] CPU 바운드작업 효율적 / [30:19] 디스크 바운드 작업 병목현상발생 / [31:29] MariaDB 스레드 풀의 사용과 튜닝 / [32:21] 스레드풀과 관련된 시스템설정변수 / [32:30] 윈도우 시스템 설정변수 / [33:41] 유닉스 시스템 설정변수 / [37:27] Extra_port, 시스템 설정변수 / [38:05] Extra_max_connections 시스템 설정변수 / [38:51] Threadpool_threads / [38:58] Threadpool_idle_threads / [39:32] 관리 및 진단 / [40:24] Show explain for(thread-id) / [40:52] Prodcesslist확인 / [41:54] 쿼리결과확인 / [42:51] 슬로우 쿼리 로그에 실행계획출력 / [43:16] Log_slow_verbosity 시스템변수 / [43:33] Microtime 옵션 / [43:42] Query_plan 옵션 / [44:03] Full 옵션 / [44:19] Explain 옵션 / [44:43] 슬로우 쿼리 예제 / [45:13] 슬로우쿼리 결과 확인 / [45:30] 구조화된 실행계획 출력 / [45:42] Json형태의 포맷으로 출력 / [46:18] 쿼리예제 / [47:09] 스레드 단위의 메모리 사용량 / [47:14] 예제확인 / [47:40] Show status; 실행 / [49:22] Shutdown 명령 / [50:08] Shutdown 명령실행 / [50:13] 사용자나 쿼리 실행 강제종료(Kill) / [51:12] 특정커넥션에서 실행중인 query만 종료 / [52:08] Information_schema.processlist / [52:22] Kill query와 kill query id의 차이점 / [53:28] 특정유저의 커텍션이나 쿼리 강제종료 / [54:25] 강제종료의 수준조정 / [55:27] Soft옵션 / [55:48] Get diagnostics / [56:23] 프로시져에서 Get diagnostics 사용 예제 / [57:12] 출력결과 확인

18 기타 기능 part2
개발 생산성/정규 표현식 기능 확장/가상 칼럼/동적 칼럼/명시적 파티션 지정/파티션 테이블 스페이스 교체/바이너리 로그 원격 백업
53분
책갈피 : [00:06] 개발 생산성 / [00:25] Limit rows examined / [01:12] 예제보기 / [02:03] 출력결과 확인 / [02:39] Show warnings 명령 / [03:01] Limit rows examined이용한 다른 예제 / [03:33] 첫번째 쿼리 확인 / [03:43] 두번째 쿼리 확인 / [04:22] 출력결과 확인 / [04:48] 기본조건에 from date조건 추가된 예제 / [05:48] Delete..returning / [06:34] 예제보기 / [06:54] 출력결과 확인 / [07:11] Select로 결과 확인 / [07:26] 마이크로 초 단위의 시간저장 / [07:43] 예제보기 / [07:52] Datetime에 정밀도 지정 / [08:06] 출력결과 확인 / [08:59] Unix_timestamp 함수 / [09:33] Date_sub함수 / [10:23] Datetime타입의 기본값 설정 / [11:29] 예제보기 / [12:21] 정규 표현식 기능 확장 / [13:20] Regexp_replace(문자열, 정규표현식,대체문자열) / [14:02] 정규표현식의 예제 / [14:13] 출력결과 확인 / [14:34] 대소문자 구분 / [15:16] Regexp_instr(문자열, 정규표현식) / [15:38] 출력결과 확인 / [16:31] Regexp_substr(문자열, 정규표현식) / [16:51] 출력결과 확인 / [17:03] 가상(Virtual)칼럼 / [17:25] 예제보기 / [17:50] Birth_month 칼럼 virtual로 가상칼럼 / [18:48] 출력결과 확인 / [19:07] 가상(Virtual)칼럼 제약사항 / [20:10] Virtual에서 지원하는 스토리지엔진 / [20:49] Persistent / [21:21] 가상(Virtual)칼럼사용시 주의사항 / [21:34] 출력결과 확인 / [21:50] 동적(dynamic)칼럼 / [22:31] 출력결과 확인 / [24:46] 동적칼럼 유틸리티함수 / [24:53] Column_create / [25:30] Column_add / [26:19] Column_get / [27:12] Column_delete / [27:46] Column_exists / [28:25] Column_list / [29:04] Column_check / [29:43] Column_json / [30:45] Maria의 동적칼럼 제약사항 / [31:10] 파티션 / [31:41] 명시적 파티션 지정 / [32:25] 파티션사용 예제보기 / [33:10] Select문 보기 / [33:53] Insert문 보기 / [35:14] 출력결과 확인 / [36:18] 파티션 테이블 스페이스 교체 / [36:56] 파티션 테이블과 스와핑할 테이블의 구조 / [37:10] 스와핑될 테이블은 임시테이블이 아니여야함 / [37:15] 스와핑될 파티션의 기준칼럼 조건만족 / [37:25] 다른테이블과의 참조관계가 아니어야함 / [37:34] Alter,insert,create,drop권한 / [39:31] 출력결과 확인 / [43:01] 백업 / [43:34] Mysqldump / [45:34] 바이너리 로그 원격 백업 / [46:11] Mysqlbinlog / [46:54] 레플리케이션 API / [47:54] Mysqlbinlog 필요로하는 옵션 / [48:30] Read-from-remote-server 옵션 / [48:48] Raw 옵션 / [49:13] Stop-never 옵션 / [49:57] Stop-naver-slave-server-id=id 옵션 / [50:13] Result-file 옵션 / [51:15] To-last-log 옵션

19 기타 기능 part3
XtraBackop 원리/XtraBackop 기능/스트리밍 백업/압축/암호화/슬레이브 백업/병렬 백업/백업 속도 조절/개별 테이블 복구/PIT 복구/증분 백업/부분 백업/컴팩트 백업/스트리밍 백업/암호화 백업
2시간 14분
책갈피 : [00:03] XtraBackup / [00:43] XtraBackup 패키지구성 / [01:06] Innobackupex / [01:57] XtraBackup / [02:28] XtraBackup 옵션 / [03:05] Xbstream / [03:46] Xbcrypt / [04:23] XtraBackup 원리 / [05:12] 데이터변경이 없을 경우 / [05:31] 데이터변경이 있을 경우 / [06:22] Backup이 완료된 시점 / [08:06] Apply-log / [08:58] Flush tables with read lock / [09:29] XtraBackup 도구사용법 / [10:01] Backup 실행할때 innobackupex 이용 / [10:26] -- backup / [10:28] Defaults-file / [11:29] backup명령이 실행될때 / [11:37] Xtrabackup InnoDB가 backup / [12:33] Xtrbackup 버전이 달라져야함 / [13:06] 리눅스는 uses posix_fadvise() / [14:00] InnoDB table 데이터파일 / [14:07] InnoDB 리두로그 추적 / [14:30] Backup이 완료되면 나머지 테이블 복사 / [14:52] Completed ok! / [15:04] 백업 디렉토리 / [15:16] Xtrabackup_checkpoints / [16:00] Xtrabackup_binlog_info / [16:12] Xtrabackup_slace_info / [16:32] --slave-info / [16:53] backup-my.cnf / [17:24] Xtrabackup_binary / [17:54] 로그적용(--apply_log) 과정 / [19:00] --apply-log옵션으로 Innobackupex 백업 / [19:12] --apply-log 실행결과화면 / [19:56] 리두로그와 데이터디렉토리 출력 / [20:06] Starting Innodb instance for recovery / [20:29] InnoDB: 메세지 / [21:11] 리두로그 적용과정 완료 / [21:18] Shutdown completed 출력 종료 / [21:39] 복구(--copy-back)과정 / [22:23] --copy-back로 innobackupex 복구 / [23:12] --copy-back 작업 실행 / [23:20] 설정파일,데이터파일,리두로그파일 복사 / [23:41] 복사된내용 / [24:40] 데이터파일과 리두로그파일 권한변경 / [25:28] Xtrabackup기능 / [25:44] 스트리밍백업 / [27:11] 변형된 tar, xvstream 포맷 / [27:59] Xbstream / [28:37] -x,-c, -C 옵션 / [29:56] nc, rsync 유틸리티 이용 / [30:08] 압축(quicklz qpress) / [30:32] 암호화(xbcrypt) / [31:12] Aes128, aes192, aes256 유틸리티 / [31:37] Xbacrypt 옵션 / [33:29] 슬레이브 백업(--slave-info) / [34:34] Xtrabackup_slave_info / [35:25] 병렬(parallel) 백업 / [35:34] parallel 옵션 / [36:16] --compress-threads 옵션 / [36:46] 백업속도조절 / [37:40] --throttle=n 옵션 / [39:00] 개별 테이블 복구 / [39:51] Alter tavle 명령 / [39:52] Discare tablespace / inport tavlespace / [40:26] Flush tables with read lock 개선 / [40:33] 슬레이브 MariaDB / [40:41] 마스터 MySQL서버의 바이너리 로그위치 / [42:28] 대기 & 강제종료 옵션 / [42:46] --lock-wait-timeout / [43:31] --lock-wait-query-type=all / update / [44:33] --kill-long-queries-timeout / [45:04] --kill0long-query-type=all / select / [45:44] Xtrabackup를 옵션이용한 예제 / [46:31] Xtrabackup 고급사용 / [46:44] PIT(point in time)복구 / [47:49] PIT(point in time)복구 사용방법 / [49:20] 결과가능하게하는 명령어 / [49:34] --apply-log 옵션 / [49:42] --copy-back 옵션 / [49:50] mysql서버 재시작 / [51:40] Stop-position, Start-position / [52:46] 증분(Increamental) 백업 / [53:40] InnoDB/XtraDB의 로그시퀀스 번호(LSN) / [53:50] 상황예제 / [56:23] Incremental-basedir 옵션 / [57:18] 풀백업과 증분백업 복구방법 / [57:50] --redo-only 옵션 / [01:00:19] apply-log가 끝나면 copy-back / [01:00:39] 부분(Partial) 백업 / [01:01:05] --include 옵션 / [01:01:14] --tables-file 옵션 / [01:01:26] --database 옵션 / [01:01:40] 정규표현식 / [01:02:15] 백업 대상 테이블을 파일로 명시 / [01:02:43] 데이터베이스 단위 백업 / [01:03:26] 부분백업 복구 / [01:03:51] .exp .ibd .cfg 파일생성 / [01:04:51] 컴팩트(compact) 백업 / [01:06:09] --compact / [01:07:04] compact=1 / [01:07:26] 스트리밍(streaming)백업 / [01:08:05] streaming 백업 예제 / [01:09:14] ssh통해 rmote_host로 전송 / [01:11:10] 아카이빙 해제된 파일위치 / [01:11:30] 암호화(Encrypt) 백업 / [01:11:46] 복호화 / [01:12:17] 암호화 알고리즘 / [01:12:26] 암호화 백업 사용시 필요한것 / [01:13:56] openssl이용 암호화 키 발생 / [01:14:18] 생성된 암호화키를 이용 백업실행 / [01:15:33] .xcrypt 확장자로 생성 / [01:15:45] 암호화된 데이터파일들을 복호화 / [01:16:03] --parallel 옵션 / [01:17:00] 레플리케이션 / [01:17:16] Global transaction ID / [01:18:03] 바이너리 로그 파일명, 위치(offset) / [01:18:37] 노드아이디 / [01:18:49] 트랜잭션 아이디 / [01:19:31] Gtid가 기존 binary-log이벤트와 사용됐을경우 / [01:19:49] 마스터 MariaDB / [01:20:18] 슬레이브 MariaDB / [01:21:11] 복제 토플러즈 / [01:23:09] 사용자트레픽이 B(Slave) 로 유입 / [01:23:42] B서버 과부화 / [01:24:13] Global transaction ID 사용 / [01:24:34] Change master to master_host='b' / [01:26:05] MariaDB 10.0 GTID / [01:26:51] 도메인아이디 / [01:27:15] 서버아이디(server_id) / [01:27:29] 트랜잭션 아이디 / [01:29:31] Change master명령어 / [01:30:00] GTID를 이용한 복제구축 / [01:30:05] 바이너리 로그파일과 위치기반의 복제를 GTID로 변경 / [01:31:00] 새로운 슬레이브를 GTID 사용하도록 구축 / [01:31:15] 기존 MariaDB서버의 데이터백업 / [01:31:17] 새 슬레이브 MariaDB서버에 백업된 데이터복구 / [01:31:25] 백업된 시점의 바이너리 로그 파일명과 위치확인 / [01:31:35] 마스터의 GTID확인 / [01:31:46] 새 슬레이브 값을 위에서 확인된GTID값으로 변경 / [01:31:51] 새 슬레이브에서 Change master 명령실행 / [01:32:25] Binlog_gtid_pos() / [01:33:05] 백업시점 GTID를 gtid_slave_pos로 지정 / [01:33:32] GTID 사용 복제연결할때 / [01:34:09] 바이너리 이름 위치지정 방법 / [01:34:50] master_use_gtid=current_pos; / [01:35:05] master_use_gtid=slave_pos; / [01:35:13] Show slave status / [01:36:58] GTID_slave_pos / [01:37:18] GTID_slave_pos의 예제 / [01:38:15] GTID_current_pos / [01:39:38] Show slave status : Using_GTID: / [01:40:12] GTID를 사용한 복제관리 / [01:40:31] 바이너리 로그 파일명과 위치로 GTID찾기 / [01:41:31] GTID까지 대기 / [01:41:43] Master_pos_wait() / [01:42:13] Master_GTID_wait("0-1-11'10) / [01:43:12] 초기복제연결 / [01:43:36] changer master명령어 / [01:43:52] Master_use_gtid=slave_pos / [01:44:00] 복제 멈춤 및 복제 관련 설정제거 / [01:44:18] Stop slave; / reset slave all;; / [01:44:29] BinaryLog 파일과 위치기반의 복제를 GTID기반으로 변경 / [01:44:59] Master_use_gtid=current_pos; / [01:46:05] 마스터 MariaDB 변경 / [01:47:24] 특정위치까지 실행 후 복제 멈춤 / [01:47:48] Start slave until master_log_file / [01:48:13] GTID를 이용한 슬레이브에서 트랜잭션 건너뛰기 / [01:48:29] Set global gtid_slave_pos / [01:49:08] MySQL 5.6 GTID / [01:49:23] 서버 UUID / [01:49:31] 트랜잭션 번호 / [01:50:34] 바이너리 로그 활성화(log-bin 시스템변수) / [01:50:41] 서버 아이디 설정 / [01:50:47] 슬레이브가 복제통해 실행한 데이터 바이너리로그에기록 / [01:50:52] GTID 컨시스턴트 모드 활성화 / [01:51:01] GTID 사용 활성화 / [01:51:42] GTID 컨시스턴트 모드활성화시 제약사항 / [01:51:51] GTID를 이용한 복제구축 / [01:52:54] 바이너리로그파일과 위치기반의 복제를 GTID기반 복제로변경 / [01:53:21] Change master 명령 실행 / [01:53:31] GTID 사용하도록 새로운 슬레이브구축방법 / [01:54:17] 기존 Mysql서버의 데이터백업 / [01:54:27] Mysqldump,xrtabackup 사용방법 / [01:55:11] Gtid_executed, gtid_purged / [01:56:42] GTID이벤트 건너뛰기 / [01:56:51] 서버 UUID;트랜잭션 번호 / [01:57:30] 멀티 소스 복제(multi-soured replication) / [01:58:15] 멀티 스레드 복제 / [02:01:29] 크래시 세이프(crash sae) 슬레이브 / [02:01:44] IO스레드, SQL스레드 / [02:03:30] Duplicate key 에러 / [02:05:35] Row기반의 복제 기능 개선 / [02:05:43] Statement포맷 / [02:05:53] Row 포맷 / [02:06:22] Row 포맷의 용량 최적화 / [02:06:52] Row포맷 바이너리 로그를 위한 정보선 로그이벤트 / [02:07:13] Annotate_rows / [02:07:54] 지연된 복제 / [02:08:11] Change master to... master_delay=n; / [02:08:48] MaraiDB 와 Mysql서버간의 복제 / [02:10:11] 그 외의 기타 기능 개선 / [02:10:39] 바이너리 로그 체크섬 / [02:10:47] 바이너리 로그 체크섬 시스템변수 / [02:11:12] 바이너리 로그 API / [02:11:46] Hbase, Cassandra / [02:12:13] 바이너리 로그 그룹 커밋

20 레플리케이션
레플리케이션/GTID를 사용한 복제 관리/멀티 소스 복제/멀티 스레드 복제/크래시 세이프 슬레이브/ROW 기반의 복제 기능 개선/지연된 복제/서버간의 복제
47분
책갈피 : [00:12] 리눅스에서 MariaDB 사용방법 / [00:21] MariaDB 설치 / [00:27] OS설정 / [00:37] Passwd 설정 / [00:42] 사용자계정 완료 / [00:59] 리눅스에서 루트설정 / [01:28] Login파일 열기 / [01:36] Session required pam_limits.so 추가 / [01:42] Etc/profile설정 / [02:14] 리눅스 버젼확인(uname -a) / [02:34] Getcof -a 명령으로 libc버젼확인 / [03:12] Mariadb-5.5.34파일 다운로드 / [03:33] 리눅스버젼에 맞는지 확인후 다운로드 / [03:59] Usr/local로 이동 / [04:05] 다운로드파일 압축풀기 / [05:03] MariaDB에 해당되는 mysql로 심볼릭링크만들기 / [05:27] Vi/etc/my.cnf / [05:45] Client 설정 / [05:48] Mysqld에 각용량에대한 설정 / [06:02] 기본적인 데이터의 디렉토리 / [06:28] 디렉토리 생성 / [06:28] 오너변경 / [07:08] 기본 스키마 지정 / [07:56] Scripts 실행 / [08:31] Boot시에mysql실행시키도록 명령 / [09:18] DB구동할때 에러발생시 / [09:51] Boot시 mysql실행시키도록 복사명령 / [10:10] DB구동 / [10:21] Failed발생시 에러파일 확인 / [10:58] Buffer pool size에서 에러발생 / [11:23] Innodb specific options에서 size변경 / [12:13] MariaDB를 여러번 설치시 ibadta1파일이남아있는 에러 / [13:33] Mysqld start 명령 / [13:52] MariaDB접속시 에러확인 / [14:58] 심볼릭링크 만들기 / [15:21] MariaDB접속 / [15:33] Show datebases; / [15:45] Use test; / [16:03] MariaDB사용시 주의사항 / [16:36] 간단한 버그보기 / [17:25] Max_heap_table_size, tmp_table_size / [18:42] Primary key / [19:12] 각 파티션의 데이터보기 / [19:46] Show명령으로 tmp size 확인 / [21:10] 변수의값 증가시키는 Set명령어 / [21:49] 통계쿼리실행 / [22:28] 인덱스사용시 잘못된결과 출력버그 / [22:54] 테스트데이터 생성 / [24:11] Insert ignore into test / [24:32] From test / [25:30] Use index(primary) / [26:21] Explain 실행계획보기 / [28:29] Handlersocket / [28:46] SQL / [29:08] Parser, optimizer / [30:28] Key, value / [30:57] Handler API / [31:17] Myisam, innodb에서 동작 / [32:18] Handlersocket 개발자 블로그 / [32:40] Handlersocket 사용할 수 있게 설정 / [33:35] Port=9998, port_wr=9999 / [34:17] Install plugin / [34:38] 설치후 DB재시작 / [34:46] Show processlist / [35:40] Netstat로 통해 정상적으로 실행되었는지 확인 / [36:01] Hs4j로 데이터처리하는 예제 / [36:27] New a client / [36:38] Open index / [36:49] Find data / [37:02] Inset data / [37:12] Update data / [37:23] Delete data / [37:30] Handlersocket 성능 결과 / [38:17] Handlersocket 장점 / [39:16] Memcached plugin / [39:51] Mysql 5.6 memcached plugin / [40:12] InnoDB API를 직접 호출 / [40:29] 기존 Memcached로 애플리케이션 소수수정 거의 없음 / [40:47] 별도의 데몬으로 동작하지 않음 / [41:06] Memcached plugin 설치 / [41:49] 스키마생성 / [41:55] Cache_policies / [42:10] Cache_policies 설정값 / [42:53] Containers / [43:00] Containers 주요필드 / [44:00] Config_options / [44:08] 테이블 생성 후 Memcached 설치 / [44:32] Handlersocket과 Memcached plugin 기능비교 / [45:05] DAta Access방법 / [45:49] Client / [46:34] Handlersocket과 Memcached plugin 장.단점 확인


샘플확인 : 알지오 검색후 -> 강의검색란 -> MariaDB