SlideShare une entreprise Scribd logo
1  sur  29
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)가 하는 일은 멀까요?

Contenu connexe

En vedette

m5 모델링 v0
m5 모델링 v0m5 모델링 v0
m5 모델링 v0resoliwan
 
Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Jin wook
 
20150305 스마트한 데이터모델링 with ER/Studio
20150305 스마트한 데이터모델링 with ER/Studio20150305 스마트한 데이터모델링 with ER/Studio
20150305 스마트한 데이터모델링 with ER/StudioDevgear
 
서울열린데이터광장Db활용과 big data
서울열린데이터광장Db활용과 big data서울열린데이터광장Db활용과 big data
서울열린데이터광장Db활용과 big dataSung Woo Leem
 
[C++ lab] 10. 메모리 누수 체크
[C++ lab] 10. 메모리 누수 체크[C++ lab] 10. 메모리 누수 체크
[C++ lab] 10. 메모리 누수 체크MinGeun Park
 
120515 security framework2.20
120515 security framework2.20120515 security framework2.20
120515 security framework2.20skccsocial
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장JangHyuk You
 
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어 2015.12.03
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어  2015.12.03엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어  2015.12.03
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어 2015.12.03Devgear
 
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가Devgear
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장SukYun Yoon
 
Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)중선 곽
 
MySQL 인덱스의 기초
MySQL 인덱스의 기초MySQL 인덱스의 기초
MySQL 인덱스의 기초Hoyoung Jung
 
데이터베이스 모델링
데이터베이스 모델링데이터베이스 모델링
데이터베이스 모델링Hoyoung Jung
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드cranbe95
 
SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기OnGameServer
 
데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은ETRIBE_STG
 
이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기OnGameServer
 
SQL쿼리튜닝팁 - 허성
SQL쿼리튜닝팁 - 허성SQL쿼리튜닝팁 - 허성
SQL쿼리튜닝팁 - 허성ETRIBE_STG
 
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법KTH
 

En vedette (20)

m5 모델링 v0
m5 모델링 v0m5 모델링 v0
m5 모델링 v0
 
Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략Mongo DB 성능최적화 전략
Mongo DB 성능최적화 전략
 
20150305 스마트한 데이터모델링 with ER/Studio
20150305 스마트한 데이터모델링 with ER/Studio20150305 스마트한 데이터모델링 with ER/Studio
20150305 스마트한 데이터모델링 with ER/Studio
 
서울열린데이터광장Db활용과 big data
서울열린데이터광장Db활용과 big data서울열린데이터광장Db활용과 big data
서울열린데이터광장Db활용과 big data
 
[C++ lab] 10. 메모리 누수 체크
[C++ lab] 10. 메모리 누수 체크[C++ lab] 10. 메모리 누수 체크
[C++ lab] 10. 메모리 누수 체크
 
120515 security framework2.20
120515 security framework2.20120515 security framework2.20
120515 security framework2.20
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장프로그래머가 몰랐던 멀티코어  CPU 이야기 - 15, 16장
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
 
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어 2015.12.03
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어  2015.12.03엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어  2015.12.03
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어 2015.12.03
 
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
XML, NoSQL, 빅데이터, 클라우드로 옮겨가는 시장 상황 속, 데이터모델링 여전히 중요한가
 
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장
프로그래머가 몰랐던 멀티코어 CPU 이야기 13, 14장
 
CouchDB - Introduction - Korean
CouchDB - Introduction - KoreanCouchDB - Introduction - Korean
CouchDB - Introduction - Korean
 
Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)
 
MySQL 인덱스의 기초
MySQL 인덱스의 기초MySQL 인덱스의 기초
MySQL 인덱스의 기초
 
데이터베이스 모델링
데이터베이스 모델링데이터베이스 모델링
데이터베이스 모델링
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
 
SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기
 
데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은
 
이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기
 
SQL쿼리튜닝팁 - 허성
SQL쿼리튜닝팁 - 허성SQL쿼리튜닝팁 - 허성
SQL쿼리튜닝팁 - 허성
 
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
H3 2011 하이브리드 앱 아키텍쳐 및 개발방법
 

Similaire à 1 mysql아키텍쳐 v1

Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQLJAEGEUN YU
 
Presto User & Admin Guide
Presto User & Admin GuidePresto User & Admin Guide
Presto User & Admin GuideJEONGPHIL HAN
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Web Services Korea
 
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)Amazon Web Services Korea
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQLI Goo Lee
 
What’s Evolving in the Elastic Stack
What’s Evolving in the Elastic StackWhat’s Evolving in the Elastic Stack
What’s Evolving in the Elastic StackElasticsearch
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1Jinkyoung Kim
 
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종PgDay.Seoul
 
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016Amazon Web Services Korea
 
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6HyeonSeok Choi
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4Seok-joon Yun
 
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1Seok-joon Yun
 
Database 튜닝 교육 110124
Database 튜닝 교육 110124Database 튜닝 교육 110124
Database 튜닝 교육 110124한 경만
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxNeoClova
 
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache TajoGruter
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipelineJongho Woo
 

Similaire à 1 mysql아키텍쳐 v1 (20)

Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQL
 
Presto User & Admin Guide
Presto User & Admin GuidePresto User & Admin Guide
Presto User & Admin Guide
 
1.1 sql문 처리과정
1.1 sql문 처리과정1.1 sql문 처리과정
1.1 sql문 처리과정
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
 
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQL
 
What’s Evolving in the Elastic Stack
What’s Evolving in the Elastic StackWhat’s Evolving in the Elastic Stack
What’s Evolving in the Elastic Stack
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
 
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
[Pgday.Seoul 2017] 5. 테드폴허브(올챙이) PostgreSQL 확장하기 - 조현종
 
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
 
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
 
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
 
Database 튜닝 교육 110124
Database 튜닝 교육 110124Database 튜닝 교육 110124
Database 튜닝 교육 110124
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docx
 
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
 
Node.js at OKJSP
Node.js at OKJSPNode.js at OKJSP
Node.js at OKJSP
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipeline
 

1 mysql아키텍쳐 v1

  • 1. What is My SQL ? What is My SQL ? # ENTAZ # DB팀 이영훈
  • 2. What is My SQL ? @ 강의소개 # # # # # # # 아키텍처 LVL 트랜잭션 & 잠금 LVL 인덱스 LVL 쿼리최적화 작성 LVL 데이터모델링 LVL 파티션 & 데이터타입 LVL 2 실행계획 및 튜닝 LVL 1 1 1 1 2 2~3
  • 3. What is My SQL ? 01 MySQL 아키텍쳐 # My SQL DB 오버뷰 # InnoDB 엔진 특징 # MyISAM 엔진 특징
  • 4. What is My SQL ? # My SQL DB 오버뷰 My SQL 서버(DB)가 하는 일은 멀까요?
  • 5. What is My SQL ? # My SQL DB 오버뷰 My SQL 서버(DB) = MySQL엔진 + 스토리지 엔진 1.MySQL 엔진 처리 리턴 2.스토리지 엔진
  • 6. What is My SQL ? # My SQL 사용과정 1. 클라이언트에서 MySQL에 접속 (ODBC 컨넥터를 통해 DB 와 통신) 2. 쿼리 파싱-> 쿼리 트리-> 최적화-> 실행 3. 스토리지엔진 에게 데이터 조작 명령 3. 스토리지 엔진이 돌려준 결과를 클라이언트로 return 1 1.MySQL 엔진 2 2.스토리지 엔진
  • 7. What is My SQL ? # My SQL 엔진 # Connection Pool # SQL Interface # Parser # Optimizer # Caches & buffer
  • 8. What is My SQL ? # PARSER 기본 문장 SELECT A, B, C FROM OBJ_POOL WHERE A = 45 AND ...
  • 9. 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
  • 10. What is My SQL ? # mysql 엔진 요약 # Connection Pool 컨넥션 관리하는 애 # SQL Interface Sql 명령어 이해하는 애 # Parser Text 를 자료 구조로 만드는애(문법,권한 체크) # Optimizer 가장 빠른 query plan 선택하는애 # Caches & buffer 어떻게든 빠르게 할려고 도움주는 애
  • 11. What is My SQL ? # 쿼리 실행 순서 1 2 1 Connection Pool 2 Parser 3 Optimizer # Caches & buffer 3
  • 12. 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 = ? ? 에 값을 변경할때
  • 13. What is My SQL ? # My SQL 엔진? # 클라이언트로부터의 접속 및 쿼리 요청을 하는 커넥션 핸들러와 Sql 파서 및 전처리기, 그리고 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을 이룬다 또한 성능 향상을 위해 캐쉬나 버퍼를 사용한다. # 연결을 받아 가장 빠른게 처리할 수 있는 방법을 찾아서 스토리지 엔진한태 처리하라고 한다.
  • 14. What is My SQL ? # My SQL DB 오버뷰 My SQL 서버(DB) = MySQL엔진 + 스토리지 엔진 1.MySQL 엔진 처리 리턴 2.스토리지 엔진
  • 15. 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 논리적 물리적
  • 16. What is My SQL ? # Storage 엔진의 종류 # 디비 하면 생각 나는것? 트랜잭션 동시성 컨트롤 빠른속도 # 트랜잭션을 지원한다? 당연이 속도가 느려짐니다. # 그래? 그럼 trade-off 걱정말고 각자 할 일만 하자!
  • 17. What is My SQL ? # 자주 쓰는 storage engine InnoDB MyISAM Archive 트랜잭션 지원 X X 락 레벨 로우(인덱스락) 테이블 로우 인덱스 지원 지원 X 캐쉬 데이터/인덱스 X 인덱스 파티셔닝 지원 지원 지원 클러스터 인덱스 디폴트 X X 사용용도 OLTP 로그수집 원시로그수집
  • 18. What is My SQL ? # locking level TABLE lock LOCK Row lock ROCK 2.ROW 3.ROW 4.ROW 5.ROW 6.ROW
  • 19. 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
  • 20. What is My SQL ? # 자주 쓰는 storage engine InnoDB MyISAM Archive 트랜잭션 지원 X X 락 레벨 로우(인덱스락) 테이블 로우 인덱스 지원 지원 X 캐쉬 데이터/인덱스 X 인덱스 파티셔닝 지원 지원 지원 클러스터 인덱스 디폴트 X X 사용용도 OLTP 로그수집 원시로그수집
  • 21. What is My SQL ? # Cache
  • 22. What is My SQL ? # Cache IN Hard ware view CPU 속도 : 빨라짐 가격 : 증가함 저장량 : 적어짐 RAM HDD CACHE RAM HDD 속도 : 느려짐 가격 : 내려감 저장량 : 많아짐
  • 23. What is My SQL ? # MYISAM ENGINE MySQL엔진 MYISAM ENGINE Key cache 처리 운영체제 시스템 케시 / 버퍼 메모리 영역 운영체제 캐쉬 영역 인덱스 파일 데이터 파일 디스크 스토리지 영역 INSERT 사전 INTO 단어인덱스, 단어명, 뜻 VALUES('A','apple','사과');
  • 24. What is My SQL ? # Memory Hard ware view MYISAM 사전 : 파일명 사전.frm OS 파일명 사전.frm : 하드웨어 주소 입니다.
  • 25. What is My SQL ? # HDD Hard ware view
  • 26. What is My SQL ? # HDD Hard ware view 1 번섹터 1.번 블락 EMP TABLE 2.번 블락 3.번 블락 4.번 블락 5.번 블락 6.번 블락 1.번 레코드 2.번 레코드 3.번 레코드
  • 27. 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','사과');
  • 28. What is My SQL ? # 자주 쓰는 storage engine InnoDB MyISAM Archive 트랜잭션 지원 X X 락 레벨 로우(인덱스락) 테이블 로우 인덱스 지원 지원 X 캐쉬 데이터/인덱스 X 인덱스 파티셔닝 지원 지원 지원 클러스터 인덱스 디폴트 X X 사용용도 OLTP 로그수집 원시로그수집
  • 29. What is My SQL ? # My SQL DB 오버뷰 My SQL 서버(DB)가 하는 일은 멀까요?