ABOUT ME

-

Graduate of Computer Engineering at Inha University

https://github.com/juwon0605

devprofessionalism@gmail.com
  • 6.Index
    Computer Science/Database 2022. 1. 7. 16:28

      ∙Index
       ∘RDBMS에서 검색 속도를 높이기 위해 테이블의 컬럼을 색인화하는 기술
                -색인화 된(B+Tree구조로) Index 파일 검색으로 검색 속도를 향상시킨다.
                -해당 테이블의 record를 full scan하지 않는다.
       ○테이블 생성 과정
                ➀.frm: 테이블 구조 저장
                ➁.MYD: 실제 데이터 저장
                ➂.MYI: Index 정보 저장(비워져 있다가 인덱싱하는 경우 생성)
       ○장점
                -검색 속도가 빨라진다.
                -전반적인 시스템 부하를 줄일 수 있다.
                -여러 필드로 이루어진(다중 필드) 인덱스를 사용하면 첫 필드 값이 같은 레코드도 구분할 수 
                  있다.
                -where 절에서 자주 사용 되거나, 외래키가 사용되거나, join을 자주하는 컬럼에 유리하다.
       ○단점
                -.MYI 파일 크기가 증가한다. (DB의 10퍼센트 내외의 공간이 추가로 필요)
                -여러 사용자가 한 페이지를 동시에 수정할 수 있는 병행성이 줄어든다.
                -인덱스 된 필드에서 데이터를 업데이트하거나, 레코드를 추가 또는 삭제할 때 인해 성능이 
                  떨어집니다. (인덱스 생성, 정렬, 재작성 등)
                -데이터 중복도가 높거나, DML(Data Manipulation Language)이 자주 일어나는 컬럼에 
                  분리하다.
       ○DML(Data Manipulation Language)
                ➀INSERT
                -기존 block에 여유가 없을 때 새로운 데이터가 입력되면 새로운 block을 할당 받고 key를 옮김
                -Index split 작업 동안 해당 block의 key 값에 대해서 DML이 블로킹 되어 대기 이벤트가 
                  발생한다.
                ➁DELETE
                -테이블에서 데이터가 삭제되는 경우: 데이터가 지워지고 다른 데이터가 그 공간 사용 가능
                -Index에서 데이터가 삭제되는 경우: 데이터가 지워지지 않고 사용 안 됨 표시만 해둠
                -테이블의 데이터 수와 인덱스의 데이터 수가 다를 수 있다.
                ➂UPDATE
                -테이블에서 업데이트가 발생하면 Index는 업데이트 하지 않는다.
                -Index에서는 삭제가 발생한 후, 새로운 작업의 삽입작업 까지 2배의 작업이 소요되기 때문이다.
                -Index는 빠른 탐색을 위한 기준점으로서 그대로 사용할 수 있다.

     

    출처

    링크

    'Computer Science > Database' 카테고리의 다른 글

    9.Redis  (0) 2022.01.07
    8.트랜잭션(Transaction) 격리 수준(Isolation level)  (0) 2022.01.07
    5.Anomaly(이상)  (0) 2022.01.07
    4.SQL과 NOSQL의 차이  (0) 2022.01.07
    3.SQL Injection  (0) 2021.09.28

    댓글

Designed by Tistory.