본문 바로가기
목차훔치기/면접을 위한 CS 전공지식 노트

인덱스 최적화 기법(면접을 위한 CS 전공지식 노트)

by 해삼2 2023. 10. 14.
728x90
반응형
인덱스 최적화 기법

인덱스 최적화 기법

인덱스 최적화(또는 데이터베이스 인덱스 최적화)는 데이터베이스 관리 시스템(DBMS)에서 

성능을 향상시키기 위해 사용되는 중요한 기술입니다. 

인덱스는 데이터베이스에서 데이터 검색 및 쿼리 처리를 빠르게 하기 위해 사용되는 데이터 구조로, 

데이터베이스 테이블의 특정 열(또는 열의 조합)에 대한 빠른 액세스를 제공합니다. 

인덱스를 최적화하는 것은 이러한 액세스를 효율적으로 만들기 위한 다양한 기법을 적용하는 과정을 

의미합니다.

 

인덱스 최적화의 목표

검색 성능 향상: 

인덱스는 특정 열의 값을 빠르게 찾을 수 있게 해주므로 데이터 검색 속도를 향상시킵니다. 

데이터베이스에서 레코드를 찾는 데 필요한 시간을 줄여줍니다.

정렬 및 그룹화 향상: 

인덱스를 사용하면 데이터 정렬 및 그룹화 작업이 효율적으로 수행됩니다. 

이는 정렬된 결과를 반환하는 쿼리나 집계 작업을 더 빠르게 수행하는 데 도움이 됩니다.

조인 성능 향상: 

테이블 간의 조인 작업이 빨라집니다. 인덱스는 조인 조건에 사용될 수 있으며, 

연결된 열의 값을 빠르게 찾아 매칭 작업을 수행합니다.

인덱스 최적화 주요 기법

인덱스 선택: 
어떤 열을 인덱스로 만들어야 하는지 선택하는 것이 매우 중요합니다. 
인덱스를 만들면 데이터 삽입 및 업데이트 성능에 영향을 미치므로 신중하게 고려해야 합니다.

복합 인덱스: 
여러 열의 조합으로 구성된 복합 인덱스를 사용하여 여러 검색 조건을 동시에 처리하는 데 도움을 줍니다.

클러스터형 인덱스: 

클러스터형 인덱스는 데이터를 테이블의 물리적 순서로 저장하므로 범위 검색에 효과적입니다.

포함 열: 

필요한 데이터를 인덱스 자체에 저장함으로써 따로 테이블을 조회하지 않아도 되게 하는 방법입니다. 

이를 통해 성능 향상을 이룰 수 있습니다.

인덱스 조정: 

데이터의 패턴이나 쿼리 요구 사항이 변경될 때 인덱스를 조정하여 최적화할 수 있습니다.

통계 수집: 

데이터베이스는 인덱스 및 테이블에 대한 통계 정보를 수집하여 옵티마이저가 실행 계획을 최적화하는 데 

도움을 줍니다.

압축 인덱스:

인덱스를 압축하여 저장 공간을 줄이고 I/O 작업을 최적화할 수 있습니다.

인덱스 최적화는 데이터베이스의 성능 향상을 위해 지속적으로 관리되어야 하며, 

데이터베이스 시스템과 사용 사례에 따라 다양한 최적화 전략을 고려해야 합니다.

 

인덱스 최적화 자세히 알기!! EX

가정:

온라인 쇼핑 웹 사이트에서 상품 데이터베이스를 유지 관리하는 데이터베이스가 있다고 가정합니다. 

상품 테이블에는 상품 ID, 상품 이름, 가격, 제조사, 카테고리 등의 열이 포함되어 있습니다. 

사용자가 특정 카테고리의 상품을 검색하는 쿼리가 많이 실행되고 검색 성능을 향상시켜야 하는 상황입니다.

이 상황에서 인덱스 최적화를 적용할 수 있는 방법은 다음과 같습니다.

인덱스 생성: 

카테고리 열에 대한 인덱스를 생성합니다. 

이렇게 하면 검색 쿼리가 해당 카테고리를 기반으로 효율적으로 데이터를 찾을 수 있게 됩니다.

복합 인덱스 고려: 

상품 테이블에 다른 검색 조건도 많이 사용된다면, 복합 인덱스를 고려해야 합니다. 

예를 들어, 카테고리와 가격을 함께 고려한 복합 인덱스를 생성하면, 

가격 범위와 특정 카테고리를 조합한 검색도 빠르게 처리할 수 있습니다.

인덱스 조정: 

데이터베이스가 운영되는 동안 쿼리 패턴이 변할 수 있으므로 주기적으로 인덱스를 조정해야 합니다. 

이는 새로운 쿼리 요구에 맞춰 인덱스를 수정하거나 삭제하는 것을 의미합니다.

이렇게 상품 카테고리에 대한 인덱스를 최적화하면 사용자가 특정 카테고리의 

상품을 빠르게 검색할 수 있고, 웹 사이트의 성능을 향상시킬 수 있습니다.

 

728x90
반응형