ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인덱스(Index)
    CS 지식/데이터베이스 2021. 1. 14. 15:20
    반응형

    인덱스(Index)

    • 인덱스(Index)란
      • 데이터베이스 테이블의 모든 데이터를 검색해서 원하는 결과 값을 가져오려면 시간이 오래 걸리기 때문에, 특정 칼럼에 인덱스를 부여해서 정렬하는 것을 의미함
      • 데이터가 저장된 칼럼의 값과 레코드가 저장된 주소의 키와 값의 쌍으로 인덱스를 만든다.
      • 기본적으로 기본키가 인덱스의 기능을 하기는 한다.
    • Index 의 성능과 고려해야할 사항
      • 인덱스를 기준으로 정렬된 상태를 유지하기 때문에 원하는 값을 탐색하는데 빠르다.
      • 하지만, 새로운 값을 추가,삭제,수정하는 경우에는 쿼리문 실행 속도가 느려진다. ~> 트리구조로 관리하고 있기 때문에
      • B-Tree & B+Tree
        • B-Tree는 데이터가 정렬된 상태로 유지되는 트리
        • 루트 노드와 브랜치 노드, 리프 노드로 이루어져서, 어떠한 값에 대해서도 가지에 도달하는 시간이 같기 때문에 같은 시간에 결과를 얻음
        • B+Tree는 B-Tree의 확장 개념
        • B-Tree는 branch 노드에 key와 data를 담을 수 있지만, B+Tree는 노드에 key만 담아두고 데이터는 담지 않는다. 리프노드에만 key와 data를 저장하고, 리프노드끼리 LinkedList로 연결됨
          • 메모리를 더 많이 확보 ~> 더 많은 key 수용 ~> 트리 깊이가 얕아짐
      • Hash 인덱스 알고리즘
        • 컬럼의 값으로 해시 값을 계산해서 인덱싱하는 알고리즘
          • 매우 빠른 검색
          • 특정 문자로 시작하는 값으로 검색을 하는 전방 일치와 같이 값의 일부만으로 검색하고자 할 때는 사용 불가
          • 메모리 기반의 데이터베이스에서 많이 사용
    • 클러스터드 인덱스(Clustered Index)
      • 프라이머리 키 값이 비슷한 레코드 끼리 묶어서 저장
        • Primary Key를 지정하지 않으면 Not Null로 설정한 복합키를 묶어서 저장
      • 테이블당 한 개만 생성 가능
      • 행 데이터를 인덱스로 지정한 열에 맞춰서 자동 정렬함
    반응형

    'CS 지식 > 데이터베이스' 카테고리의 다른 글

    NoSQL  (0) 2021.01.14
    트랜잭션(Transaction)  (0) 2021.01.14
    정규화  (0) 2021.01.14
    데이터 베이스  (0) 2021.01.14
    스키마 3계층 ( 외부 스키마, 개념 스키마, 내부 스키마)  (0) 2020.08.17

    댓글

Designed by Tistory.