Mysql 어댑티드 해시 인덱스

BackEnd_Ash.log·2023년 7월 29일
0

database

목록 보기
27/31

mysql 에서 어댑티드 해시 인덱스에 대해서 알려줘

"Adaptive Hash Index" 는 MySQL의 InnoDB 스토리지 엔진에서 사용되는 기술입니다. Adaptive Hash Indexes (AHI)는 InnoDB가 주요 인덱스를 통해 빈번하게 액세스하는 행에 대한 고성능 해시 인덱스를 빌드하는 기능입니다.

InnoDB는 자체적으로 B+ Tree 인덱스를 사용합니다. B+ Tree 인덱스는 전체 범위 검색 및 정렬 작업에 매우 효율적이지만, 개별 레코드를 검색하는 경우에는 해시 인덱스가 더 효율적일 수 있습니다. 이 때문에 InnoDB는 빈번하게 액세스하는 행에 대한 해시 인덱스를 동적으로 생성하고 유지 관리하는데, 이를 Adaptive Hash Index라고 부릅니다.

Adaptive Hash Index는 필요에 따라 런타임에서 생성되고 제거됩니다. 이 인덱스는 데이터 액세스 패턴에 따라 변화하며, 일반적으로 대량의 랜덤 I/O 작업이 포함된 빈번한 점 쿼리에 대해 성능 향상을 제공합니다. 하지만 이 기능은 더 많은 메모리를 사용하므로, 시스템 리소스에 따라 성능에 영향을 미칠 수 있습니다.

어댑티브 해시 인덱스가 활성화 되지 않았을 때는 초당 20,000개 정도의 쿼리를 처리하면서 CPU 사용률은 100% 였다.

그런데 어댑티브 해시 인덱스를 활성화한 후 쿼리의 처리량은 2배 가까이 늘어났음에도 불구하고 CPU 사용률은 오히려 떨어진 것을 볼 수 있다.

InnoDB의 Adaptive Hash Index 기능은 기본적으로 활성화되어 있지만, 필요에 따라 비활성화 할 수 있습니다. 그리고 이 기능의 효과는 워크로드에 크게 의존하므로, 실제 성능 향상을 위해 어떤 상황에서 이 기능을 활용해야 하는지에 대해서는 잘 모니터링하고 분석해야 합니다.

비활성화 하는 경우에는

가 존재한다.

활성화 했을때 도움 되는 경우에는

profile
꾸준함이란 ... ?

0개의 댓글