옵티마이저는 작성된 SQL이 가장 효율적으로 수행되도록 최적의 경로를 찾아 주는 모듈입니다. 옵티마이저의 종류에는 RBO와 CBO가 있습니다.
RBO Rule Based Optimizier |
CBO Cost Based Optimizer |
|
최적화 기준 | 규칙에 정의된 우선순위 | 액세스 비용 |
성능 기준 | 개발자의 SQL 숙련도 | 옵티마이저의 예측 성능 |
특징 | 실행 계획 예측이 쉬움 | 성능 통계치 정보 활용, 예측이 복잡함 |
고려사항 | 개발자의 규칙 이해도, 규칙의 효율성 | 비용 산출 공식의 정확성 |
* 실행 계획이란 옵티마이저가 수립한 SQL 코드의 실행 절차를 의미합니다. EXPLAIN 명령어를 통해 확인할 수 있습니다.
쿼리 성능 최적화 방법
SQL 코드 재구성 | 인덱스 재구성 |
- WHERE 절 추가 - WHERE 절에 연산자 사용 제한 - IN을 EXISTS로 대체 - 힌트로 액세스 경로 및 조인 순서 변경 |
- 조회되는 속성과 조건을 고려하여 인덱스 구성 - 인덱스 추가 및 기존 인덱스의 열 순서 변경 - 테이블을 참조하는 다른 SQL문으로의 영향 고려 - IOT 구성 고려 - 불필요한 인덱스 제거 |
728x90
반응형