▶️ 쿼리 최적화에 대해 설명해주시고 방법에 대해 설명해주세요.
- 데이터베이스 시스템에서 쿼리(데이터베이스에서 정보를 검색, 조작하거나 분석하는 명령어)를 가장 효율적으로 실행하기 위해 실행 계획을 최적화하는 프로세스.
쿼리 평가 계획 작성
- 데이터베이스 시스템은 쿼리를 평가하기 위한 여러 실행 계획을 생성합니다. 각 계획은 쿼리를 실행하는 다른 방법을 나타낸다.
비용 기반 최적화
- 각 실행 계획에 대한 예상 비용을 계산하고, 가장 저렴한 계획을 선택한다. 비용은 실행 시간, CPU 사용량, 입출력 등과 관련된 여러 요소를 고려한다.
인덱스 사용
- 적절한 인덱스를 활용하여 데이터 접근을 최적화한다. 인덱스는 특정 열에 대한 빠른 검색을 지원하므로, 쿼리의 WHERE 절 조건에 인덱스를 활용할 수 있는지 고려한다.
조인 최적화
- 조인 연산을 최적화하여 불필요한 조인을 피하고, 조인 순서를 조정하여 성능을 향상시킨다.
부분 결과 최적화
중간 결과 집합을 최소화하기 위해 집계 함수나 필터링을 조건절 앞으로 이동하거나 조건을 최적화한다.
쿼리 캐싱
- 이전에 실행한 쿼리의 결과를 캐시하여 동일한 쿼리를 다시 실행하지 않고 캐시된 결과를 반환하는 방법을 사용한다.
통계 정보 사용
- 데이터베이스의 통계 정보를 활용하여 쿼리 최적화 결정에 도움을 준다. 이를 통해 올바른 인덱스 선택과 조인 순서 등이 결정된다.
하드웨어 및 시스템 리소스 고려
- 시스템의 하드웨어 및 리소스 제약 사항을 고려하여 최적화를 수행한다.
동적 최적화
- 실행 중인 쿼리의 성능을 실시간으로 모니터링하고, 최적화 결정을 동적으로 조정한다.