48912 Members __ Online

정렬
HOME커뮤니티[c]자유게시판 [f]
Jun
12

(SQL학원/SQL교육) 마리아DB(MariaDB) & MySQL 기초 및 SQL 활용 재직자 향상과정

write : 탑크리에듀
hit : 3 , date :

[SQL학원/SQL교육]


마리아DB(MariaDB) & 

MySQL 기초 및 SQL 활용 재직자 향상과정

(주말반)


33c1e934cb09a86782d48b3a2704eb76_1528163

★ 교육개요 ★

본 과정은 단기간에 MariaDB에 대한 설치 및 설정 부터 기초 쿼리 활용 능력, 서브쿼리, 조인, 쿼리최적화방법, 스토리지 엔진, SQL 실행계획의 분석까지 배울 수 있는 실무/실습위주의 교육 입니다. MySQL이 오픈 코어 방식의 상용화를 도입하면서 일부 기능들이 오픈 소스에서 누락되기 시작했는데, 다행히 MariaDB 서버가 그 자리를 조금씩 메워주고 있습니다. MySQL 엔터프라이즈 버전에만 사용 가능한 상용 기능들을 MariaDB를 통해서 무료로 사용할 수 있게 된 것이며 또한 MariaDB 사용자도 많이 늘어나면서, 이제 MariaDB는 더는 미완성의 MySQL 변종이 아니라 MySQL 엔터프라이즈 버전과 경쟁하는 안정적인 오픈소스 DBMS가 된 것으로 재직자분들을위해서, MariaDB 10.0과 MySQL 5.6의 각 고유 기능과 공통 기능들을 비교 설명하는 방식으로 구성했으므로 MariaDB와 MySQL의 특성과 기능 차이를 이해하고, 서비스의 특성에 맞게 (MariaDB와 MySQL중에서) 적절한 솔루션을 선택하는 안목을 키울 수 있을 것이라 확신합니다.

★ 교육목표 ★

- 관계형 데이터베이스에서 SQL을 사용하여 목적에 적합한 데이터를 정의하고, 조작하며, 제어
- 테이블의 구조와 제약조건을 생성, 삭제하고 수정하는 DDL(Data Definition Language) 명령문을 작성.
- 한 개의 테이블에 대해 데이터를 삽입, 수정, 삭제하고 행을 조회하는 DML(Data Manipulation Language) 명령문을 작성.
- 업무단위인 트랜잭션의 완료와 취소를 위한 DCL(Data Control Language) 명령문을 작성.
- 생성된 테이블의 목록, 테이블의 구조와 제약조건을 파악하기 위해 데이터사전을 조회하는 명령문을 작성.
- 테이블 조회 시간을 단축하기 사용하는 인덱스의 개념을 이해하고 인덱스를 생성하는 DDL(Data Definition Language)명령문을 작성.
- 먼저 생성된 테이블들을 이용하여 새로운 테이블과 뷰를 생성하는 DDL(Data Definition Language)명령문을 작성.
- 조인, 서브쿼리, 집합연산자를 사용하여 두 개 이상의 테이블로부터 데이터를 조회하는 DML(Data Manipulation Language)명령문을 작성.
- 서브쿼리 및 조인의 기초 및 활용
- 서브쿼리 및 조인의 상호변환
- 스키마 객체(테이블, 인덱스, 뷰)에 대한 이해
- MariaDB 및 MySQL의 구조에 대한 이해
- 쿼리 최적화에 대한 이해
- 스토리지 엔진에 대한 이해
- SQL 실행계획에 대한 이해

★ 교육대상 ★

- 초보 및 신입 개발자
- SQL에 관심있는 개발자 또는 학생

★ 커리큘럼 ★
마리아DB(MariaDB) & 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 온라인 스키마 변경을 사용해도 될까? 
__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






3
댓글 0 | 엮인글 0 트랙백보내기
탑크리에듀님 (LV.13 / 148,360P)
회원가입
최근접속
최근 포스트 탑크리에듀님의 콘텐츠 구독하기
최근 댓글
  • ㆍ아직 댓글을 등록하지 않으셨습니다.
최근에 등록된 댓글들
반가워요 ^^
<a href=&quo
<a href=&quo
2017년 9월에 폐강됐다고 전화가
반가워요^^
 
정보 감사합니다
반갑습니다~
반갑습니다~
감사합니다~
와 감사합니다 ㅎㅎ ^^
 
5010. 대기업 면접준비학원(자소서첨삭/
5009. 자기소개서첨삭/취업컨설팅(공기업
5008. 세아메탈 자소서학원
5007. kt자소서학원
5006. 풍림푸드 자소서학원
5005. kbs 자소서학원
5004. 씨티씨바이오 자소서학원
5003. 시원스쿨 자소서학원
5002. 아발론교육 자소서학원
5001. 비와이씨 자소서학원
 
5000. 양우종합건설 자소서학원
4999. 세중에스앤씨 자소서학원
4998. 팅크웨어 자소서학원
4997. 현대중공업모스 자소서학원
4996. 한국화이자제약 자소서학원
4995. 만도헬라일렉트로닉스 자소서학원
4994. 더존비즈온 자소서학원
4993. 이투스교육 자소서학원
4992. 심팩 자소서학원
4991. 동국제약 자소서학원
 
4990. 우신시스템 자소서학원
4989. 인탑스 자소서학원
4988. 에스티팜 자소서학원
4987. 캐논코리아 자소서학원
4986. 존슨앤드존슨 자소서학원
4985. 한국도로공사 자소서준비학원
4984. 한국도로공사 자소서학원추천
4983. 한국 도로공사 자소서학원
4982. 한국도로공사 면접준비학원
4981. 한국도로공사 면접준비
 
4980. 한국도로공사 면접학원추천
4979. 한국도로공사 면접
4978. cj제일제당 자소서준비학원
4977. cj제일제당 자소서준비
4976. cj제일제당 자소서학원추천



%3Cul+class%3D%22Klocation%22%3E%3Cli+class%3D%22first%22%3E%3Ca+href%3D%22..%2Fhompy%2F%22%3EHOME%3C%2Fa%3E%3C%2Fli%3E%3Cli%3E%3Ca+href%3D%22..%2Fhompy%2Fcomm.php%22%3E%EC%BB%A4%EB%AE%A4%EB%8B%88%ED%8B%B0%5Bc%5D%3C%2Fa%3E%3C%2Fli%3E%3Cli%3E%3Ca+href%3D%22..%2Fhompy%2Fcomm.php%3Fmid%3D41%22%3E%EC%9E%90%EC%9C%A0%EA%B2%8C%EC%8B%9C%ED%8C%90+%5Bf%5D%3C%2Fa%3E%3C%2Fli%3E%3C%2Ful%3E