DB(데이터베이스)에서 Index란 말 그대로 설정해 둔 DB의 column에 해당하는 색인입니다.
색인이란?
책 속의 내용 중에서 중요한 단어나 항목, 인명 따위를 쉽게 찾아볼 수 있도록 일정한 순서에 따라 별도로 배열하여 놓은 목록.
일정한 순서에 따라 정리가 되어있다면 보다 찾기가 쉬워집니다. 그렇기에 저희는 DB에서 빠른 조회 작업을 위해서 Index를 사용합니다.
DB에서 특정 column을 Index로 지정하면, 해당 column을 복사하여 Key와 Pointer를 사용해 기존의 값을 가리키고 있고 복사된 칼럼들은 정렬됩니다.
이때 사용되는 자료구조가 B+tree입니다.
B+tree?
B-tree(자기 균형 트리)의 변형입니다. Binary Search Tree(이진 탐색 트리)를 확장한 B-tree 노드가 하나가 아닌 여러 노드가 올 수 있습니다. 조건에 맞도록 노드들이 배치가 되어있습니다.
B-tree에서 변형된 점은 데이터는 리프 노드에만 존재한다는 것입니다. 그 위의 부모 노드들은 해당 리프 노드로 가기 위한 조건들이 있는 것입니다. 추가적으로 리프 노드들은 서로 연결되어 있어 범위를 탐색할 때 부모 노드로 올라가지 않고 이어서 탐색할 수 있다는 장점이 있습니다.
Index는 하나로 정해져 있지 않고 칼럼 수나 다른 자료 구조를 이용하는 방법으로 여러 방법들이 있습니다. 단일 칼럼 인덱스, 복합 칼럼 인덱스, 해시 인덱스 등 다양한 종류가 있습니다.
참고
https://www.youtube.com/watch?v=iNvYsGKelYs
https://www.geeksforgeeks.org/dbms/indexing-in-databases-set-1/
https://www.mongodb.com/resources/basics/databases/database-index
'개발 > DataBase&SQL' 카테고리의 다른 글
| [SQL] SQLZOO 정복하기 1 (0) | 2025.11.03 |
|---|---|
| [Sybase] covert로 형변환하기 (0) | 2025.10.28 |
| [Sybase] DB의 if, CASE 구문 (0) | 2025.10.17 |
| [SQL] SQL query 문 작성 연습하기 (0) | 2025.08.21 |