인덱스(Index)
데이터베이스에서 데이터 검색 속도를 향상시키기 위해 사용되는 자료 구조
특정 컬럼에 인덱스를 생성하면 데이터를 정렬한 후 별도의 메모리 공간에 key(컬럼 값), value(주소) 쌍 저장
장점
- 검색 성능 향상: 인덱스를 사용하면 테이블 전체를 스캔하는 대신, 효율적으로 데이터를 검색하여 성능을 크게 향상
- 데이터 정렬: 인덱스는 데이터를 정렬된 상태로 유지하여, 범위 검색과 정렬된 데이터에 대한 질의를 빠르게 처리
단점
- 저장 공간 사용: 추가적인 디스크 공간을 사용합니다.
- 유지 비용: 삽입, 삭제, 업데이트 시 인덱스도 함께 갱신되어야 하므로, 성능에 부담
언제 사용?
- 규모가 큰 테이블
- 삽입, 수정, 삭제 작업이 자주 발생하지 않는 컬럼
- WHERE, ORDER BY, JOIN 등이 자주 사용되는 컬럼
- 데이터의 중복도가 낮은 컬럼
자료구조
B-Tree
- 자체 균형 트리로 O(logN)의 시간 복잡도를 가지며, 정렬되어 있음
B+Tree
- B-tree를 개선
- 정렬된 데이터가 포인터로 연결되어 있기 때문에 부등호 연산(>, <)이 가장 빠름
HashTable
- 등호(=) 연산 검색이 가장 빠름
- 부등호 연산(>, <)이 느림
'DB' 카테고리의 다른 글
SQL injection (1) | 2024.02.26 |
---|---|
트랜잭션(Transaction) (2) | 2024.02.24 |
정규화(Normalization) (2) | 2024.02.24 |
SQL vs NoSQL (1) | 2024.02.15 |
DB Key, JOIN (0) | 2024.02.15 |