1 mysql아키텍쳐 v1
Upcoming SlideShare
Loading in...5
×
 

1 mysql아키텍쳐 v1

on

  • 512 views

1~7 강 중 1강

1~7 강 중 1강

Statistics

Views

Total Views
512
Views on SlideShare
326
Embed Views
186

Actions

Likes
1
Downloads
11
Comments
3

4 Embeds 186

http://resoliwan.blogspot.kr 172
http://resoliwan.blogspot.com 11
http://blog.naver.com 2
http://resoliwan.blogspot.co.uk 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • 별말씀을요 :)
    Are you sure you want to
    Your message goes here
    Processing…
  • 잘 읽고 갑니다. 감사합니다.^^
    Are you sure you want to
    Your message goes here
    Processing…
  • 정리 잘 해주셨네용. 잘 읽고 갑니다.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

1 mysql아키텍쳐 v1 1 mysql아키텍쳐 v1 Presentation Transcript

  • What is My SQL ? What is My SQL ? # ENTAZ # DB팀 이영훈
  • What is My SQL ? @ 강의소개 # # # # # # # 아키텍처 LVL 트랜잭션 & 잠금 LVL 인덱스 LVL 쿼리최적화 작성 LVL 데이터모델링 LVL 파티션 & 데이터타입 LVL 2 실행계획 및 튜닝 LVL 1 1 1 1 2 2~3
  • What is My SQL ? 01 MySQL 아키텍쳐 # My SQL DB 오버뷰 # InnoDB 엔진 특징 # MyISAM 엔진 특징
  • What is My SQL ? # My SQL DB 오버뷰 My SQL 서버(DB)가 하는 일은 멀까요?
  • What is My SQL ? # My SQL DB 오버뷰 My SQL 서버(DB) = MySQL엔진 + 스토리지 엔진 1.MySQL 엔진 처리 리턴 2.스토리지 엔진
  • What is My SQL ? # My SQL 사용과정 1. 클라이언트에서 MySQL에 접속 (ODBC 컨넥터를 통해 DB 와 통신) 2. 쿼리 파싱-> 쿼리 트리-> 최적화-> 실행 3. 스토리지엔진 에게 데이터 조작 명령 3. 스토리지 엔진이 돌려준 결과를 클라이언트로 return 1 1.MySQL 엔진 2 2.스토리지 엔진
  • What is My SQL ? # My SQL 엔진 # Connection Pool # SQL Interface # Parser # Optimizer # Caches & buffer
  • What is My SQL ? # PARSER 기본 문장 SELECT A, B, C FROM OBJ_POOL WHERE A = 45 AND ...
  • What is My SQL ? # Optimizer 기본 문장 SELECT sum(sal) FROM emp A, dept B WHERE A.dept_id = B.dept_id AND B.dept_name = ‘DB팀’ 1. emp 를 dept_id 로 group by 해서 sal을 sum 한 후 Emp 와 dept 를 조인하여 dept_name 이 ‘DB팀’ 만 결과 노출 2.dept 에서 ‘DB팀’을 찾은 후 dept_id 를 가지고 emp 에서 필터링 후 해당 결과를 sum
  • What is My SQL ? # mysql 엔진 요약 # Connection Pool 컨넥션 관리하는 애 # SQL Interface Sql 명령어 이해하는 애 # Parser Text 를 자료 구조로 만드는애(문법,권한 체크) # Optimizer 가장 빠른 query plan 선택하는애 # Caches & buffer 어떻게든 빠르게 할려고 도움주는 애
  • What is My SQL ? # 쿼리 실행 순서 1 2 1 Connection Pool 2 Parser 3 Optimizer # Caches & buffer 3
  • What is My SQL ? # Optimizer Soft parsing VS hard parsing 머지? 먹는건가? Soft pasing is good! ex) prepare statement, Insert A values(1),(2),(3),(4),(5) SELECT a FROM emp Q) 1.SELECT A FROM emp WHERE A= ‘1’ select A from emp where A= ‘1’ 2.SELECT A FROM emp WHERE A = ? ? 에 값을 변경할때
  • What is My SQL ? # My SQL 엔진? # 클라이언트로부터의 접속 및 쿼리 요청을 하는 커넥션 핸들러와 Sql 파서 및 전처리기, 그리고 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다 또한 성능 향상을 위해 캐쉬나 버퍼를 사용한다. # 연결을 받아 가장 빠른게 처리할 수 있는 방법을 찾아서 스토리지 엔진한태 처리하라고 한다.
  • What is My SQL ? # My SQL DB 오버뷰 My SQL 서버(DB) = MySQL엔진 + 스토리지 엔진 1.MySQL 엔진 처리 리턴 2.스토리지 엔진
  • What is My SQL ? # Storage engine 정한적 없는대? CREATE TABLE emp ( user_id INT NOT NULL , .... )ENGINE = InnoDB SELECT * FROM emp 1.MySQL 엔진 명령 2.스토리지 엔진 HARD DISK OR MEMORY 논리적 물리적
  • What is My SQL ? # Storage 엔진의 종류 # 디비 하면 생각 나는것? 트랜잭션 동시성 컨트롤 빠른속도 # 트랜잭션을 지원한다? 당연이 속도가 느려짐니다. # 그래? 그럼 trade-off 걱정말고 각자 할 일만 하자!
  • What is My SQL ? # 자주 쓰는 storage engine InnoDB MyISAM Archive 트랜잭션 지원 X X 락 레벨 로우(인덱스락) 테이블 로우 인덱스 지원 지원 X 캐쉬 데이터/인덱스 X 인덱스 파티셔닝 지원 지원 지원 클러스터 인덱스 디폴트 X X 사용용도 OLTP 로그수집 원시로그수집
  • What is My SQL ? # locking level TABLE lock LOCK Row lock ROCK 2.ROW 3.ROW 4.ROW 5.ROW 6.ROW
  • What is My SQL ? # locking level 동시에 동일 테이블의 다른 로우를 수정할려고 한다면? TABLE 1.ROW 2.ROW 3.ROW 4.ROW 5.ROW 6.ROW UPDATE ROW1 클라 2 UPDATE ROW2 클라 1
  • What is My SQL ? # 자주 쓰는 storage engine InnoDB MyISAM Archive 트랜잭션 지원 X X 락 레벨 로우(인덱스락) 테이블 로우 인덱스 지원 지원 X 캐쉬 데이터/인덱스 X 인덱스 파티셔닝 지원 지원 지원 클러스터 인덱스 디폴트 X X 사용용도 OLTP 로그수집 원시로그수집
  • What is My SQL ? # Cache
  • What is My SQL ? # Cache IN Hard ware view CPU 속도 : 빨라짐 가격 : 증가함 저장량 : 적어짐 RAM HDD CACHE RAM HDD 속도 : 느려짐 가격 : 내려감 저장량 : 많아짐
  • What is My SQL ? # MYISAM ENGINE MySQL엔진 MYISAM ENGINE Key cache 처리 운영체제 시스템 케시 / 버퍼 메모리 영역 운영체제 캐쉬 영역 인덱스 파일 데이터 파일 디스크 스토리지 영역 INSERT 사전 INTO 단어인덱스, 단어명, 뜻 VALUES('A','apple','사과');
  • What is My SQL ? # Memory Hard ware view MYISAM 사전 : 파일명 사전.frm OS 파일명 사전.frm : 하드웨어 주소 입니다.
  • What is My SQL ? # HDD Hard ware view
  • What is My SQL ? # HDD Hard ware view 1 번섹터 1.번 블락 EMP TABLE 2.번 블락 3.번 블락 4.번 블락 5.번 블락 6.번 블락 1.번 레코드 2.번 레코드 3.번 레코드
  • What is My SQL ? # MYISAM ENGINE MySQL엔진 MYISAM ENGINE MYISAM : 사전 테이블 : 사전 파일.FRM 메모리 영역 Key cache 처리 운영체제 시스템 케시 / 버퍼 MYISAM : apple : 1번 플래터 3번 섹터 4번 레코드 운영체제 : 사전.FRM : 1번 플래터 1번 섹터 부터 시작 운영체제 캐쉬 영역 인덱스 파일 데이터 파일 디스크 스토리지 영역 INSERT 사전 INTO 단어인덱스, 단어명, 뜻 VALUES('A','apple','사과');
  • What is My SQL ? # 자주 쓰는 storage engine InnoDB MyISAM Archive 트랜잭션 지원 X X 락 레벨 로우(인덱스락) 테이블 로우 인덱스 지원 지원 X 캐쉬 데이터/인덱스 X 인덱스 파티셔닝 지원 지원 지원 클러스터 인덱스 디폴트 X X 사용용도 OLTP 로그수집 원시로그수집
  • What is My SQL ? # My SQL DB 오버뷰 My SQL 서버(DB)가 하는 일은 멀까요?