DB 튜닝에서 가장 중요한 것은 쿼리와 스키마 최적화이다.
스키마 설계는 한번 진행되면 그 테이블을 사용하는 모든 쿼리에 영향을 주기 때문에 좀처럼 변경하기 힘들지만 쿼리는 해당 쿼리만 수정하면 되므로 변경하기 쉽다.
Slow Query를 없애는 것은 성능을 향상 시키기 위한 매우 중요한 수단이므로 어플리케이션의 성능을 향상 시키고 싶다면 우선적으로 쿼리의 튜닝을 검토해봐야 한다.
성능 진단의 가장 첫걸음은 실행한 SQL이 DB에서 어떻게 처리되는 지를 파악하는 것이다.
사람이 이해할 수 있는 언어로 구성된 SQL을 실행하도록 DB에 명령을 내리면
DB는 내부적으로 SQL 파싱 (문법 체크 및 DB에서 실행하기 위한 형태로 변환하는 단계)을 하고 옵티마이징 (데이터를 찾는 가장 빠른 방법을 찾아내는 단계)을 거친 후 실제로 데이터를 찾는다.
사용자가 느끼기에는 SQL만으로 모든 조작이 이루어지는 것처럼 보이나 실제로는 조금이라도 빠르게 데이터를 찾아내기 위해 DB 내부적으로는 의외로 많은 단계를 거친다.
Explain 이란 DB가 테이터를 찾아가는 일련의 과정을 사람이 알아보기 쉽게 DB 결과 셋으로 보여주는 것이다.
MySQL Explain을 활용하여 기존의 쿼리를 튜닝할 수 있을 뿐만 아니라 성능 분석, 인덱스 전략 수립 등과 같이 성능 최적화에 대한 전반적인 업무를 처리할 수 있다.
'DB > RDB' 카테고리의 다른 글
| Mysql , Oracle에서 sql 차이 (0) | 2023.02.21 |
|---|---|
| 테이블에서 column 추가및 수정 (0) | 2022.12.04 |
| Select 문, Part2 (0) | 2022.11.12 |
| Select 문, Part1 (0) | 2022.11.12 |
| 키, 인덱스, 실행계획, 테이블의 관계 (0) | 2022.11.03 |