mojh7 / real-mysql-study

:orange_book: Real MySQL 8.0 study
0 stars 0 forks source link

2022/09/20 ~ 2022/09/26 #22

Open mojh7 opened 1 year ago

mojh7 commented 1 year ago

다음 스터디

2022-09-28 pm 7:30

학습 범위

정리 범위

danbi5228 commented 1 year ago

10.3.3 table 칼럼

mojh7 commented 1 year ago

10.3.4 partitions 칼럼

MySQL 5.7 버전 까지는 옵티마이저가 사용하는 파티션들의 목록을 EXPLAIN PARTITION 명령으로 확인

8.0버전 부터는 EXPLAIN 명령으로 파티션 관련 실행 계획까지 모두 확인할 수 있게 변경됐다


432p 예제를 보면 employees 테이블의 모든 레코드 복사해서

파티션 테이블 생성하고 employees_2 테이블이 hire_date 칼럼값을 기준으로 5년 단위로 나누어진 파티션을 가짐


파티션 프루닝(Partition pruning)


쿼리의 실행 계획을 통해서 어느 파티션을 읽는지 확인할 수 있어야 쿼리의 튜닝이 가능할 것이다 (433p)

어떤 파티션을 접근했는지 partitions을 보면 알 수 있다


type 값을 보면 ALL인데 풀 테이블 스캔으로 쿼리가 처리된다는 것

풀 테이블 스캔으로 어떻게 테이블의 일부만 읽을 수 있는 것인가?

432~433p 예제에서는 employees_2 테이블의 모든 파티션이 아니라 p1996_2000 파티션과 p2001_2005 파티션만 풀 스캔을 실행하게 된다