[MySQL] 인덱스 자료구조

기훈·2024년 3월 6일

MySQL

목록 보기
22/23

인덱스의 핵심은 탐색범위를 최소화 하는 것

HashMap

  • 키와 값이 있어 단건 검색 속도는 O(1)

  • 범위 탐색은 O(N)

  • like 'AB'% 같은 검색은 키를 하나씩 꺼내서 비교해야 하기 때문에 사실상 불가


List

  • 정렬되지 않은 리스트 탐색은 O(N) (어디서부터 탐색해야 할지 모름)

  • 정렬된 리스트의 탐색은 O(logN)

  • 정렬되지 않은 리스트의 정렬 시간 복잡도는 O(N) ~ O(N * logN)

  • 삽입 / 삭제 비용이 매우 높다.


Tree

  • 트리 높이에 따라 시간 복잡도가 결정된다.

  • 트리 높이를 최소화 해야 한다.

  • 한쪽으로 노드가 치우치지 않도록 균형잡힌 트리를 사용해야 한다.


B + Tree

  • 삽입 / 삭제시 균형을 이룸

  • 하나의 노드가 여러 자식들을 가질 수 있어 트리 높이 최적화에 유리하다.

  • 리프 노드에만 데이터가 존재하여 연속 데이터 접근에 유리하고 검색시 리프 노드만 훑어 보면 된다.

0개의 댓글