728x90
- DB
- Index
Index 작동 원리- Index 종류
B-Tree 인덱스- Hash Indexes
- Bitmap Index
- GIST(Generalized Search Tree)
- R-Tree
- Full Text Index
- Spatial Index
- Trie(Prefix Tree) Index
- Covering Index
- 영속성
- 트랜잭션
- ORM
- ACID
- N+1 문제
- DB 정규화
- Data Replication
- sharding 전략
- CAP 이론
- Index
Hash Index
- 데이터의 위치를 Hashing 을 통해 Index 를 저장하는 방식
- hasing?
- 특정한 hash function을 정의하여 이를 통해 key 값을 일정한 범위의 수로 변환하는 작업
- hasing?
- 등가 검색(equal searches) 에 매우 효과적
작동 원리
- key 값의 해시화
- 데이터를 인덱스에 추가할 때, 키 값에 해시 함수를 적용해 고유한 해시 코드를 생성함. ➡️ 데이터가 저장될 위치를 결정함.
- HashTable
- 해시 인덱스는 보통 해시 테이블을 사용하여 구현됨. 해시 테이블은 배열과 유사한 구조로, 각 셀은 특정 해시값에 해당하는 데이터의 위치 정보를 가지로 있음.
- 충돌 처리
- 서로 다른 key 값이 동일한 해시 값을 가질 때
충돌(collision)
이 발생함. 이를 처리하기 위해 일반적으로체이닝(chaining)
이라는 방법을 사용함. ➡️ 같은 해시값을 가진 요소들을 연결 리스트로 연결하는 것을 의미
- 서로 다른 key 값이 동일한 해시 값을 가질 때
장점
- 빠른 검색 속도
해시 인덱스는 key 값으로 직접 데이터 위치를 찾기 떄문에 검색 속도가 매우 빠름. 이론적으로는 상수 시간 복잡도인 O(1) 을 가짐. - 간단한 구조
해시 테이블 구조는 상대적으로 구현이 간단하며, 데이터 접근도 직관적임.
단점
- 범위 검색 비효율적임
- 해시 인덱스는 범위검색(특정 범위의 값 찾기)에 적합하지 않음. 해시 함수의 특성상 연속적인 값을 연속적인 위치에 저장하않기 때문
- 메모리 사용량
충돌이 많이 발생하는 경우, 많은 양의 메모리를 사용할 수 있으며, 체이닝으로 인해 오버헤드가 발생할 수 있음.
어디다 적용?
주로 등가 조건 검색이 많은 시나리오에서 유용함. 특히 메모리 내 데이터베이스나 캐싱 시스템에서 선호됨. 값의 정확한 일치를 찾는 작업에서 해시 인덱스의 성능이 크게 돋보일 수 있음.
728x90
'99클럽 TIL' 카테고리의 다른 글
99클럽 코테 스터디 8일차 TIL DB R-Tree (0) | 2024.05.27 |
---|---|
99클럽 코테 스터디 6일차 TIL DB Bitmap Index (0) | 2024.05.25 |
99클럽 코테 스터디 4일차 TIL DB B-Tree 인덱스 (0) | 2024.05.23 |
99클럽 코테 스터디 3일차 TIL DB Index 작동 원리 (0) | 2024.05.22 |
99클럽 코테 스터디 2일차 TIL DB Index (0) | 2024.05.21 |
Comment