CS/DataBase
(MySQL) Adaptive Hash Index
주누
2020. 3. 8. 15:42
Adaptive Hash Index이란?
B-Tree 인덱스를 보완하기 위해서 나온 기법이다.
B-Tree 인덱스는 데이터의 양이 아무리 증가해도 데이터 접근 퍼포먼스가 선형적으로 증가하지 않는다는데 장점이 앗다.
하지만 자주 조회되는 데이터임에도 불구하고 매번 트리의 경로를 쫓아가야 하므로 조금 고지식한 경향이 있다.
Adaptive Hash Index는 B-Tree의 이러한 단점을 보완하기 위해서 자주 사용되는 데이터 값만 내부적으로 해시 값을 생성하여 조회를 성능을 높인다. (즉 모든 데이터에 해시 값을 적용하지 않는다는 것이다.)
Adaptive Hash Index의 장점
자주 사용되는 자원을 해시 값을 통해서 접근하기 때문에 락(Mutex)으로 인한 지연이 줄어든다.
B-Tree인덱스 보다 훨씬 빠른 속도로 데이터 처리가 가능하다.
- B-Tree 접근비용 : O(LogN) Adaptive Hash Index 접근비용 : O(1)
주의사항
빈번한 데이터 접근이 많은 환경에서는 효율이 좋지만 테이블이 오래된 경우에는 해시 값이 메모리에 남아있는 경우가 있으므로 이러한 경우의 제어는 불가하다는 단점이 있다.
테이블 Drop 시 영향을 줄 수 있다.
References
https://tech.kakao.com/2016/04/07/innodb-adaptive-hash-index/