backend-interview-guide

데이터베이스 최적화

목차

인덱스(Index)

인덱스는 데이터베이스 테이블의 특정 컬럼에 대한 검색 속도를 향상시키기 위한 구조입니다. 인덱스를 사용하면 데이터베이스가 테이블의 전체 행을 스캔하지 않고도, 필요한 데이터를 빠르게 찾을 수 있습니다. 일반적으로 인덱스는 B-Tree 또는 Hash 구조로 구현되며, 이를 통해 데이터 검색이 더 효율적으로 이루어집니다.

장점

단점

고려사항

데이터베이스 쿼리를 최적화하는 방법

데이터베이스 쿼리 최적화는 데이터 검색, 삽입, 업데이트 등의 성능을 향상시키기 위해 쿼리의 구조와 실행 방식을 개선하는 작업입니다. 최적화된 쿼리는 데이터베이스 리소스를 적게 사용하면서도 필요한 데이터를 더 빠르게 반환합니다.

최적화 방법

장점

단점

고려사항

데이터베이스 파티셔닝(Partitioning)

파티셔닝은 큰 테이블이나 인덱스를 물리적으로 작은 단위(파티션)로 나누어 관리하는 기술입니다. 이는 테이블의 성능을 향상시키고, 관리의 용이성을 높이는 데 도움을 줍니다. 파티셔닝은 주로 대용량 데이터베이스에서 사용되며, 파티션의 기준은 주로 날짜, 범위, 해시 등을 기반으로 설정됩니다.

장점

단점

고려사항

커버링 인덱스(Covering Index)

커버링 인덱스(Covering Index)는 특정 쿼리가 참조하는 모든 컬럼을 포함하는 인덱스를 의미합니다. 이 인덱스를 사용하면 데이터베이스는 테이블의 실제 데이터를 읽을 필요 없이, 인덱스만으로 쿼리를 처리할 수 있습니다. 이는 디스크 I/O를 줄이고 쿼리 성능을 크게 향상시킵니다.

장점

단점

고려사항

다중 컬럼 인덱스 (Composite Index)

다중 컬럼 인덱스(Composite Index)는 두 개 이상의 컬럼을 결합하여 하나의 인덱스로 만든 것입니다. 이 인덱스는 다수의 컬럼을 동시에 검색하거나 정렬할 때 성능을 최적화하기 위해 사용됩니다. 예를 들어, 사용자 테이블에서 first_namelast_name으로 검색할 때, 두 컬럼을 결합한 다중 컬럼 인덱스를 생성하면 검색 성능이 크게 향상됩니다.

다중 컬럼 인덱스는 특정 순서로 컬럼을 결합하며, 이 순서가 쿼리 성능에 중요한 영향을 미칩니다. 쿼리가 인덱스에 포함된 첫 번째 컬럼부터 순서대로 조건을 만족할 때, 인덱스를 효율적으로 사용할 수 있습니다.

장점

단점

고려사항