MySQL, Hash VS B-Tree

00_8_3·2022년 4월 4일
0

데이터베이스

목록 보기
1/4

많은 DB들에서 B-Tree 알고리즘을 기본 인덱스로서 사용하고 있다.
Hash 테이블을 사용하면 1대1 매칭이 되어 더 빠를텐데 왜 그럴까?

이유

  1. Hash 테이블에서 데이터 충돌이 발생할 경우
    연결된 리스트들 까지 검색을 해야하기 때문에 log(1)에서 log(n)으로 시간복잡도가 증가 할 수 있다.

  2. 해시 테이블은 기본 키로만 접근이 가능하다.
    = 또는 <=>를 사용하는 연산자 많이 동등비교에 사용될 수 있다. 하지만 매우 빠르다. (DOCS에 적혀있음)

  3. 또한 트리 알고리즘은 일반적으로 유지 관리, 데이터 확장, 확장 등이 더 쉽습니다

  4. 인덱스가 해시 크기에 비해 허용 가능한 크기를 초과하여 전체 인덱스를 다시 작성해야 하는 지점이 있을 수 있습니다. 일반적으로 이것은 문제가 되지 않지만 거대하고 거대한 데이터베이스의 경우 며칠이 걸릴 수 있습니다.

출처

https://stackoverflow.com/questions/7306316/b-tree-vs-hash-table
https://dev.mysql.com/doc/refman/8.0/en/index-btree-hash.html

https://wlswoo.tistory.com/62

0개의 댓글