1. 데이터베이스에서 특정 단어 중심의 조회
- 특정 단어 중심 조회란 사용자가 입력한 특정 단어나 키워드를 중심으로 데이터를 검색하는 것을 의미합니다. 예를 들어, 고객 이름이 "홍길동"인 레코드를 검색하거나 상품 이름에 "노트북"이 포함된 데이터를 조회하는 것입니다.
- 대규모 데이터베이스에서 특정 단어를 검색할 때는 단순 순차 검색(Sequential Search)보다는 색인을 활용해 검색 속도를 높이는 것이 중요합니다.
2. 인덱스
- 인덱스(index)는 데이터베이스 테이블의 특정 열에 대해 검색 속도를 높이기 위해 별도로 구성된 데이터 구조입니다.
- 책의 목차처럼, 인덱스는 특정 단어나 값을 빠르게 찾아가기 위한 참조 정보를 제공합니다.
- 인덱스은 테이블의 특정 열에 대한 정렬된 가상 테이블로서, 데이터가 추가되거나 변경될 때 자동으로 업데이트됩니다.
특징과 장점
- 검색 속도 향상: 인덱스를 통해 데이터베이스는 필요한 데이터를 빠르게 찾을 수 있습니다.
- 별도의 가상 테이블: 실제 데이터를 복사하는 것이 아니라, 특정 열에 대한 정렬된 정보를 별도의 테이블처럼 관리합니다.
단점
- 추가적인 저장 공간 사용: 인덱스를 저장하는 데 별도의 저장 공간이 필요합니다.
- 데이터 조작 성능 저하: 데이터 삽입, 삭제, 수정 시 색인을 재구성해야 하므로, 인덱스가 많을수록 데이터 조작 성능이 저하될 수 있습니다.
3. 구조와 방식
(1) 오름차순 / 내림차순 정렬
- 기본적으로 오름차순 또는 내림차순으로 정렬됩니다.
- 예를 들어, price 컬럼에 인덱스를 설정하면 가격이 낮은 순서대로(오름차순) 혹은 높은 순서대로(내림차순) 정렬된 인덱스 테이블이 만들어집니다.
(2) B-Tree (Balanced Tree)
- 데이터베이스에서 가장 많이 사용되는 인덱스 구조는 B-Tree입니다.
- B-Tree는 균형 잡힌 트리로, 루트 노드에서부터 중간값을 기준으로 데이터를 탐색하여 검색 속도를 높입니다.
- B-Tree 색인은 이진 검색과 유사하게 중간값을 기준으로 데이터를 나누어, 트리의 깊이에 따라 빠르게 검색할 수 있도록 합니다.

[참고]
How Database B-Tree Indexing Works | Built In
B-trees and database indexes
[자료구조] 간단히 알아보는 B-Tree, B+Tree, B*Tree - 코딩하는 경제학도
4. 인덱스을 통한 검색 속도 향상 원리
- 데이터베이스가 데이터를 직접 탐색하지 않고 색인 테이블을 통해 검색을 수행하도록 합니다.
- 특정 단어가 포함된 레코드를 찾을 때 색인 테이블을 참조하여 대상 레코드를 찾은 후, 해당 페이지로 이동하여 실제 데이터를 조회합니다.
5. 인덱스의 단계적 구조 (인덱스 → 페이지 → 본문)
색인은 아래의 단계를 통해 실제 데이터로 접근하게 됩니다.
- 인덱스: 인덱스 테이블에서 검색할 단어 또는 값을 찾습니다.
- 페이지: 인덱스 테이블이 특정 페이지를 가리키고 있어, 해당 페이지로 이동하여 필요한 레코드를 찾습니다.
- 본문: 페이지 안의 실제 데이터 영역으로 이동하여 최종 데이터를 가져옵니다.
이와 같은 단계적 구조 덕분에, 대량의 데이터를 빠르게 탐색할 수 있습니다.
'Backend > SQL' 카테고리의 다른 글
| [SQL]JDBC (0) | 2024.10.30 |
|---|---|
| [SQL]데이터베이스 집합 연산 (0) | 2024.10.29 |
| [SQL]데이터베이스 백업/복원 (0) | 2024.10.29 |
| [SQL] DCL(Data Control Language) (0) | 2024.10.29 |
| [SQL] 데이터베이스 사용자 (1) | 2024.10.29 |