[DB] 데이터베이스 튜닝

hyunoi·2024년 12월 25일

Database

목록 보기
7/8
post-thumbnail

데이터베이스 튜닝이란?


데이터베이스의 성능 향상을 위하여 운영체제나 데이터베이스 자체의 구조와 쿼리 작성 방식 등 다양한 요소를 분석하고 최적화하는 작업이다.

보통 시스템 성능 저하의 요인은 어플리케이션이나 데이터베이스의 설계에 의해 발생한다. 데이터베이스 성능이 굉장히 중요하기 때문에 하드웨어의 성능만 향상시키는 것이 아니라 프로그램에서 호출되는 쿼리들을 운영체제나 미들웨어까지 **확장하여 한정된 자원으로 좋은 성능(처리량 증가, 응답 시간 단축)을 발휘**할 수 있도록 해야 한다.

정리해보면 데이터베이스 튜닝을 하는 목적으로는

  • 성능
    데이터 처리 속도를 높이고, 응답 시간을 단축하기 위함
  • 안정성
    높은 부하에서도 안정적인 서비스를 제공하기 위함
  • 확장성
    데이터 양이 많아져도 지속적인 성능 유지하기 위함

이렇게 세 가지가 있다.

데이터베이스 튜닝은 크게 세 단계로 나눌 수 있다.

  1. 데이터베이스 설계 튜닝
    테이블 스키마 설계, 정규화/반정규화, 인덱스 생성 관리 등
  2. 데이터베이스 환경 튜닝
    하드웨어 자원과 데이터베이스 설정값 설정 등
  3. 쿼리 튜닝
    쿼리 최적화, 인덱스 활용 등

한 단계씩 알아보자.

데이터베이스 설계 튜닝

데이터베이스 구조를 효율적으로 설계하여 성능을 향상시키는 과정이다.

  • 테이블 스키마 설계
    데이터를 효과적으로 저장하고 조회하도록 테이블과 필드를 설계하는 것
  • 정규화와 반정규화
    데이터 중복을 줄이기 위해서는 정규화를 적용하지만, 읽기 성능이 중요한 경우에는 반정규화를 적용하여 상황에 맞도록 적용하여 성능을 향상
  • 인덱스 생성 및 관리
    조회 성능을 높이기 위해서 적절한 인덱스 활용, 불필요한 인덱스 제거 및 업데이트

데이터베이스 환경 튜닝

데이터베이스가 동작하는 물리적 및 논리적 환경을 최적화하는 과정이다.

  • 하드웨어 자원 업그레이드 및 최적화
    CPU, 메모리, 디스크 I/O 성능을 점검하고, 필요한 부분에 따라 자원을 업그레이드하거나 최적화
    (디스크 I/O 작업을 줄이고 성능을 높이기 위해서 데이터베이스 캐시를 확장)
  • 데이터베이스 설정값 조정
    버퍼 크기, 연결 풀 크기, 캐시 크기와 같은 설정값을 적절히 조정하여 성능 최적화

쿼리 튜닝

SQL 쿼리의 실행 계획을 분석하고, 성능을 저하시키는 요소들을 제거하여 효율적으로 바꾸는 과정

  • 쿼리 최적화
    느린 쿼리를 찾고, 불필요한 데이터 조회를 제거하거나 쿼리 구조를 바꿔 성능 향상
  • 인덱스 활용
    적절한 인덱스를 활용하여 데이터 조회 속도 개선

0개의 댓글