MySQL의 지수 BTREE와 해시 인덱스 차이

 MySQL의 인덱스를 사용하는 경우, B- 트리 또는 해시를 선택

  1. 인덱스 해시 해시 값 비교 해쉬 연산 후에 수행되기 때문에 해시 지수 "="전용 "IN"및 "<=>"질의를 만족시킬 수는 쿼리와 같은 <같은 범위를 사용할 수없고, 그것은 단지 당량 사용할 수있다 필터링 때문에 처리 후의 대소 관계에 대응하는 해시 값을 해시 알고리즘 후, 필터링 범위에 기초하지 및 이전과 똑같은 해시 동작을 보장하지 않는다
  2. 대신에, 질의 자의 앞쪽 지수 또는 지수 키 여러 인덱스 해시 단독 해시 값을 산출, 타임 인덱스의 조합에 대해 해시 해시 값을 산출하는 인덱스를 계산 한 후 지수 키 해시 값과 함께 그것은 사용할 수 없습니다
  3. 인덱스 키로 해시 동작 후의 해시 인덱스 해시 값 인해 동일한 키 인덱스 해시 값의 존재로, 해시 테이블에 저장된 포인터 정보에 대응하는 행의 해시 연산 결과가 다르더라도 해시 키 충족 복용 만약 데이터의 레코드 수는, 바로 문의로부터 해시 인덱스를 완료 할 수없는, 또는 테이블에서 실제 데이터를 액세스함으로써 적절한 비교를하고, 해당 결과
  4. 성능이 반드시 인덱스 B- 트리 인덱스 해시보다 더 큰 해시 값이 같은 발생하지 않습니다.
  5. B 트리 인덱스는 이러한 상부 및 비교 연산자 BETWEEN =,>,> =, <, <=로서 사용될 수있다. 또한 운영자에 대한 LIKE만큼이 상수를 시작하는 쿼리 와일드 카드가 아니므로
  6. 과의 MyISAM InnoDB 스토리지 엔진은 해시 인덱스를 사용할 수 없습니다 .........

추천

출처www.cnblogs.com/bneglect/p/11290437.html