SlideShare a Scribd company logo
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)가 하는 일은 멀까요?

More Related Content

ODP
2 mysql트랜잭션과잠금 v0
PDF
Zookeeper 소개
PPTX
Zoo keeper 소개
PDF
A review of zookeeper 2010.12
PDF
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
PDF
Let's Play with Data Safely
PDF
데이터야 안전하게 놀아보자.V.1
PPTX
MySQL workbench 사용하기
2 mysql트랜잭션과잠금 v0
Zookeeper 소개
Zoo keeper 소개
A review of zookeeper 2010.12
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
Let's Play with Data Safely
데이터야 안전하게 놀아보자.V.1
MySQL workbench 사용하기

Viewers also liked (20)

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

Similar to 1 mysql아키텍쳐 v1 (20)

DOCX
MySQL_SQL_Tunning_v0.1.3.docx
PDF
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
PDF
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
PDF
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
PPTX
DBMS 아키텍처
PPTX
MySQL_MariaDB-성능개선-202201.pptx
PPTX
MySQL_MariaDB로의_전환_기술요소-202212.pptx
PDF
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
PPTX
오라클 DB 아키텍처와 튜닝
PPTX
대규모 서비스를 지탱하는 기술 Ch 4
PDF
MySQL Performance Tuning (In Korean)
PDF
MySQL Administrator 2021 - 네오클로바
PDF
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
PDF
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
 
PDF
Fundamentals of Oracle SQL
PPTX
MaxScale이해와활용-2023.11
PPT
ecdevday8 웹개발자의 약한고리 SQL 뛰어넘기
PDF
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
PPTX
181215 MS SQL로 알아보는 데이터베이스
PPTX
실무로 배우는 시스템 성능 최적화 Ch6
MySQL_SQL_Tunning_v0.1.3.docx
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
제 9회 엑셈 수요 세미나 자료 연구컨텐츠팀
DBMS 아키텍처
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptx
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
오라클 DB 아키텍처와 튜닝
대규모 서비스를 지탱하는 기술 Ch 4
MySQL Performance Tuning (In Korean)
MySQL Administrator 2021 - 네오클로바
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략_데이터지능팀_성동찬
H3 2011 대형사이트 구축을 위한 MySQL 튜닝전략
 
Fundamentals of Oracle SQL
MaxScale이해와활용-2023.11
ecdevday8 웹개발자의 약한고리 SQL 뛰어넘기
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
181215 MS SQL로 알아보는 데이터베이스
실무로 배우는 시스템 성능 최적화 Ch6
Ad

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)가 하는 일은 멀까요?