MySQL 구조
- 클라이언트가 DB에 SQL 요청을 보냄
- MySQL 엔진에서 옵티마이저가 SQL문을 분석한 뒤 빠르고 효율적으로 데이터를 가져올 수 있는 계획을 세운
- 어떤 순서로 테이블에 접근할 지, 인덱스를 사용할지, 어떤 인덱스를 사용할 지 등을 결정
- 옵티마이저가 세운 계획을 바탕으로 스토리지 엔진에서 데이터를 가져온다
- DB 성능 문제 대부분의 원인은 스토리지 엔진으로부터 데이터를 가져올 때 발생
- 데이터를 찾기가 어려워서 오래걸리거나, 가져올 데이터가 너무 많아서 오래 걸림
- MySQL 엔진에서 정렬, 필터링 등의 마지막 처리를 한 뒤에 클라이언트에게 SQL 결과를 응답한다
SQL 튜닝의 핵심
- 스토리지 엔진에서 데이터를 찾기 쉽게 바꾸기
- 스토리지 엔진으로부터 가져오는 데이터의 양 줄이기
'Database > MySQL' 카테고리의 다른 글
[MySQL] WHERE 튜닝 (0) | 2024.11.14 |
---|---|
[MySQL] 인덱스 / PK / UNIQUE / EXPLAIN (0) | 2024.11.14 |
[MySQL] DB 성능 최적화 경험? (0) | 2024.11.14 |
[MySQL] Index (0) | 2024.07.31 |
[MySQL] Stored Procedure/Function/Trigger (0) | 2024.07.31 |