2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[백엔드] 기술 면접 Top30 - #25 쿼리 최적화

2023. 10. 5. 11:11ㆍ[백엔드] 기술면접
반응형

쿼리 최적화

 

쿼리 최적화란?

  • 데이터베이스 시스템에서 쿼리를 가장 효율적으로 실행하기 위해 실행 계획을 최적화하는 프로세스
  • 데이터베이스 시스템은 사용자로부터 입력받은 SQL 쿼리를 실행할 때 데이터를 검색, 조작, 정렬, 그룹화 등
    다양한 연산을 수행하는데, 이러한 작업을 가장 빠르고 효율적으로 수행하기 위해 적절한 실행계획을 선택해야한다.
    쿼리 최적화는 이러한 실행 계획을 찾는 과정이다.

 

쿼리 최적화의 목표

  • 최소한의 시간과 자원 소모로 쿼리 실행: 가장 중요한 목표 중 하나는 쿼리를 가능한 빠르게 실행하고, 시스템 자원(CPU, 메모리, 디스크 등)을 효율적으로 활용하는 것입니다. 

최적의 실행 경로 선택

  • 데이터베이스 시스템은 가능한 다양한 실행 계획을 고려하고, 이 중에서 최적의 실행 경로를 선택해야한다.
    이를 위해서는 테이블의 통계 정보, 인덱스, 조인 조건 등을 고려해야 한다.

데이터 일관성 보장

  • 쿼리 최적화는 데이터베이스의 일관성을 유지하면서 작업을 수행해야 한다.
    따라서 쿼리 최적화 과정에서 트랜잭션 관리와 관련된 고려 사항도 중요하다.

쿼리 최적화 방법 단계

SQL 파싱

  • 사용자로부터 입력받은 SQL 쿼리를 파싱하여 쿼리 문장의 구조를 이해하고 데이터베이스가 이해할 수 있는 형태로 변환한다.

쿼리 최적화

  • 이 단계에서 데이터베이스 시스템은 가능한 다양한 실행 계획을 생성하고 비교한다.
  • 실행 계획은 테이블과 인덱스의 통계 정보, 조인 조건, 필터 조건, 정렬 순서 등을 고려하여 생성된다.

실행 계획 선택

  • 생성된 실행 계획 중에서 최적의 실행 계획을 선택한다. 이때 비용 기반 최적화(cost-based optimization)나 규칙 기반 최적화(rule-based optimization)와 같은 최적화 전략을 사용한다.

실행

  • 선택된 실행 계획에 따라 쿼리를 실행합니다.

모니터링 및 조정

  • 실행 중인 쿼리의 성능을 모니터링하고 필요한 경우 실행 계획을 조정하여 성능을 최적화한다.

요약


쿼리 최적화는 데이터베이스에서 SQL 쿼리를 최적 실행 계획으로 변환하는 프로세스로,
목표는 최소 자원 소모, 최적 경로 선택, 데이터 일관성 유지이다.
주요 단계는 파싱, 최적화, 실행 계획 선택, 실행으로 구성되며 데이터베이스 성능 향상을 위한 중요한 과정이다.
반응형