본문 바로가기
Reading

[DB] 인덱스(Index)

by 박은유 2024. 3. 27.
반응형

인덱스란?

 : 데이터베이스에서 검색 속도를 향상시키기 위해 사용되는 데이터 구조로, 테이블의 특정 열에 대한 빠른 검색 및 정렬을 가능하게 합니다.

 

B-트리

: 자료구조로, 루트 노드, 리프 노드, 그리고 사이에 있는 브랜치 노드로 나뉩니다.

 

 이런식으로 구성되어 테이블 탐색시 전부를 탐색하는게 아닌 "있을 법한" 노드를 탐색해 검색속도를 높힙니다.

 

 

인덱스 최적화 기법

  • 인덱스는 비용이다.

 : 인덱스는 두 번 탐색하도록 강요하기 때문에 관련 읽기 비용이 듭니다. 또한 컬렉션 수정시 인덱스도 수정되어야하는 비용이 발생합니다.

  • 항상 테스팅하라.

 : 인덱스 최적화 기법은 서비스 특징에 따라 달라지기 때문에 항상 테스팅하는 것 이 중요합니다.

  • 복합 인덱스는 같음,정렬,다중 값, 카디널리티 순이다.

 : 여러 필드를 기반으로 조회를 할 때 생성 순서를 지켜서 생성해야 합니다.

 

1. 같음을 비교하는 쿼리가 있다면 제일 먼저 인덱스로 설정합니다.

2. 정렬은 그다음 인덱스로 설정합니다.

3. 다중 값, 즉 많은 값을 출력해야 하는 필드를 그다음 인덱스로 설정합니다.

4. 유니크한 값의 정도를 나타내는 카디널리티(ex: age, email중 email이 더 높습니다.)를 먼저 인덱스로 생성합니다.

 

예상질문

  1. 데이터베이스 인덱스의 작동 원리를 간단히 설명해보세요.
  2. 인덱스를 사용하지 않고 데이터를 검색할 때와 인덱스를 사용하여 데이터를 검색할 때의 차이는 무엇인가요?
  3. 어떤 상황에서 인덱스를 생성하거나 제거해야 하는지에 대해 설명해주세요.

 

Answer:

  1. 데이터베이스 인덱스는 특정 열에 대한 빠른 검색을 위한 데이터 구조로, B-Tree 구조를 활용하여 원하는 데이터를 빠르게 찾아줍니다.
  2. 인덱스를 사용하지 않을 때는 데이터베이스 시스템이 모든 행을 스캔하여 검색하지만, 인덱스를 사용하면 키-값 쌍을 통해 더 빠르게 원하는 데이터를 찾을 수 있습니다.
  3. 인덱스를 생성하거나 제거하는 경우에는 자주 검색되는 열에 생성하여 성능을 향상시키고, 실제 사용 패턴과 데이터베이스 크기에 따라 적절한 인덱스를 유지하거나 관리해야 합니다.

 

정리

 : 인덱스는 데이터베이스에서 특정 열에 대한 빠른 검색을 위한 구조로, B-Tree구조를 사용하여 데이터를 효율적으로 찾습니다. 이를 통해 데이터베이스 시스템은 검색 속도를 향상시키고, 쓰기 작업에도 영향을 미치므로 신중하게 관리해야 합니다.

 

반응형

'Reading' 카테고리의 다른 글

Array, LinkedList 특징, 차이점, 장단점  (0) 2024.04.03
프로시저(Procedure)  (0) 2024.04.02
스레드  (0) 2024.03.26
2. 프로그래밍 패러다임  (0) 2024.03.17
1.디자인 패턴(Design Pattern)  (0) 2024.03.17