살아가는 이유_EU
내가 살아가는 이유, 삶
살아가는 이유_EU
전체 방문자
오늘
어제
  • 삶 (159)
    • 이유's EATERY (16)
      • 맛집 (10)
      • 까페 (4)
      • 맛있는 Recipe (1)
    • 이유's LIFE (16)
      • 국내여행 (5)
      • 해외여행 (2)
      • 운동 (1)
      • 취업정보 (0)
      • 끄적끄적 (5)
      • 일기쟝 (3)
      • 세상 이야기 (0)
      • 결혼 준비 (0)
    • 이유's Programming (43)
      • JavaScript (6)
      • Java (7)
      • C++ (0)
      • DBMS (24)
      • Spring (3)
      • til (1)
      • HTTP (2)
    • 이유's REVIEW (13)
      • BOOK (6)
      • PROGRAM or MOVIE (5)
      • PRODUCT 제품리뷰 (2)
    • 이유's STUDY (31)
      • 수업 관련 (2)
      • IT 시사 (2)
      • IT NEWS (2)
      • IVIEW (0)
      • IOS 앱 만들기 (0)
      • 알고리즘 문제풀이 (23)
      • PM data literacy (2)
    • 이유's ENGLISH (13)
      • Writing about something! (12)
      • Feedback (1)
      • TIL (0)
    • 이유's DB 공부 (1)
      • MySQL DB (0)
      • Postgre (1)
    • Computer 공부 (17)
      • Backend question (10)
      • Clean architecture (2)
      • Operating system (2)
      • Network (3)
      • 항해 (0)

블로그 메뉴

  • 홈
  • EATERY's 맛집
  • CAFE 까페
  • Recipe 레시피
  • IT 공부
  • 방명록
  • 태그

공지사항

인기 글

태그

  • map 하는 법
  • memoziation
  • 인절미 티라미수
  • 현명하게 리액트
  • React.memo
  • go hand in hand
  • 어게인마이라이프
  • 용인추천
  • 묵리
  • 송계옥
  • 영어공부
  • key 로 접근
  • 자바스크립트
  • 고메동 카페
  • 용인까페
  • 스쿤브레드
  • 삼돈식탁
  • 아메리카토노
  • have something to do with
  • 고메커피
  • 파스타맛집
  • 스테이크
  • 맛집
  • 렌더링 수 줄이기
  • 흑임자 크림
  • 용인맛집
  • have something to do with뜻
  • 자세요정
  • Array로 접근
  • 피지오필로소피

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
살아가는 이유_EU

내가 살아가는 이유, 삶

[ 4 - 3] 인덱스 종류
이유's Programming/DBMS

[ 4 - 3] 인덱스 종류

2021. 3. 31. 10:57
728x90
반응형

이번에는 인덱스 종류에 대해서 먼저 살펴볼 것이다. 인덱스는 다양한 종류가 있는데 우선 모든 DBMS 가 B* Tree 를 기본적으로 제공한다. 

 

가. B* Tree 인덱스 

몇가지 조건을 통해서 BALANCED된 상태로 유지시켜주는 자료구조이다. 

B* Tree 의 인덱스는 B 인 Balanced 의 약자로서 인덱스 루트에서 리프 노드까지 어떤 값으로 탐색하더라도 같음을 의미한다. 

 

루프로부터 모든 리프 블록까지의 높이가일정하다. 

 

하지만 Index Skew 또는 Sparse 현상이 생기는 경우가 있다. 이는 인덱스 효율에 좋지 않는 구조를 보여준다. 

* Index Skew : 인덱스 엔트리가 왼쪽 또는 오른쪽에 치우치는 현상을 말함. 왼쪽 에 있는 인덱스 엔트리가 empty 고 오른쪽에 있는 인덱스 엔트리는 가득 찼을 때도 의미.. 

But SQL 에서는 자동으로 이를 해결해줌

 

* Index parse : 인덱스 Sparse 는 인덱스 전반적으로 밀도 ( density) 가 떨어지는 현상을 의미함. 

 

 

나. 비트맵 인덱스 

 

비트맵 인덱스

Oracle 은 비트맵 ( Bitmap) 인덱스 구조를 제공한다. 상품 테이블에 10개 레코드 있고 색상으로는 이제 입력되면 해당 색상으로 이제 보여질 수 있도록 되어 있음. 

 

다. 함수기반 인덱스 

 

Oracle 이 제공하는 함수기반 인덱스는 칼럼 값 자체가 아닌 칼럼에 특정 함수를 적용한 값으로 B* Tree 인덱스를 만든다. 

 

select * 
from 주문
where nvl ( 주문수량, 0 ) <100 

주문수량 칼럼에 인덱스가 있어도 위처럼 인덱스 컬럼을 가공하면 정상적인 인덱스 사용이  불가능하다. 하지만 조건절과 똑같이 NVL 함수를 씌워 아래처럼 인덱스를 만들면 정상적인 인덱스 사용이 가능. 

 

create index emp_x01 on emp ( nvl ( 주문수량, 0 )) ;

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'이유's Programming > DBMS' 카테고리의 다른 글

다중 행 서브 쿼리  (0) 2021.04.19
SQL 쿼리 - group by / having  (0) 2021.04.06
[ 4 -2 ] 인덱스 스캔 방식 -  (0) 2021.03.25
[ 4 -1 ] 인덱스 기본 원리 / Balanced Tree ( B Tree)  (4) 2021.03.24
SQL 연산자  (0) 2021.03.23
    '이유's Programming/DBMS' 카테고리의 다른 글
    • 다중 행 서브 쿼리
    • SQL 쿼리 - group by / having
    • [ 4 -2 ] 인덱스 스캔 방식 -
    • [ 4 -1 ] 인덱스 기본 원리 / Balanced Tree ( B Tree)
    살아가는 이유_EU
    살아가는 이유_EU
    안녕하세요. 초보개발자의 일상을 담은 블로그입니다.

    티스토리툴바