반응형
인덱스란?
: 데이터베이스에서 검색 속도를 향상시키기 위해 사용되는 데이터 구조로, 테이블의 특정 열에 대한 빠른 검색 및 정렬을 가능하게 합니다.
B-트리
: 자료구조로, 루트 노드, 리프 노드, 그리고 사이에 있는 브랜치 노드로 나뉩니다.
이런식으로 구성되어 테이블 탐색시 전부를 탐색하는게 아닌 "있을 법한" 노드를 탐색해 검색속도를 높힙니다.
인덱스 최적화 기법
- 인덱스는 비용이다.
: 인덱스는 두 번 탐색하도록 강요하기 때문에 관련 읽기 비용이 듭니다. 또한 컬렉션 수정시 인덱스도 수정되어야하는 비용이 발생합니다.
- 항상 테스팅하라.
: 인덱스 최적화 기법은 서비스 특징에 따라 달라지기 때문에 항상 테스팅하는 것 이 중요합니다.
- 복합 인덱스는 같음,정렬,다중 값, 카디널리티 순이다.
: 여러 필드를 기반으로 조회를 할 때 생성 순서를 지켜서 생성해야 합니다.
1. 같음을 비교하는 쿼리가 있다면 제일 먼저 인덱스로 설정합니다.
2. 정렬은 그다음 인덱스로 설정합니다.
3. 다중 값, 즉 많은 값을 출력해야 하는 필드를 그다음 인덱스로 설정합니다.
4. 유니크한 값의 정도를 나타내는 카디널리티(ex: age, email중 email이 더 높습니다.)를 먼저 인덱스로 생성합니다.
예상질문
- 데이터베이스 인덱스의 작동 원리를 간단히 설명해보세요.
- 인덱스를 사용하지 않고 데이터를 검색할 때와 인덱스를 사용하여 데이터를 검색할 때의 차이는 무엇인가요?
- 어떤 상황에서 인덱스를 생성하거나 제거해야 하는지에 대해 설명해주세요.
Answer:
- 데이터베이스 인덱스는 특정 열에 대한 빠른 검색을 위한 데이터 구조로, B-Tree 구조를 활용하여 원하는 데이터를 빠르게 찾아줍니다.
- 인덱스를 사용하지 않을 때는 데이터베이스 시스템이 모든 행을 스캔하여 검색하지만, 인덱스를 사용하면 키-값 쌍을 통해 더 빠르게 원하는 데이터를 찾을 수 있습니다.
- 인덱스를 생성하거나 제거하는 경우에는 자주 검색되는 열에 생성하여 성능을 향상시키고, 실제 사용 패턴과 데이터베이스 크기에 따라 적절한 인덱스를 유지하거나 관리해야 합니다.
정리
: 인덱스는 데이터베이스에서 특정 열에 대한 빠른 검색을 위한 구조로, 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 |