[DB][Mysql][0.0.2] 인덱스

yun0510·2023년 12월 1일

DB

목록 보기
3/16

1.인덱스란

DB가 저장된 데이터에 대한 주소를 가지고 있는 것. 조회속도 향상을 위해 사용됨

주의 사항

1) insert, update, delete 시 속도 저하

-> 테이블중 index 컬럼의 데이터가 변경될 경우 indext 테이블 또한 수정이 필요하여 속도 저하 발생
-> 수정이 잘 이뤄지지 않은 컬럼으로 지정이 필요

2) index 정보 저장공간이 필요함

-> index 정보에 대하여 추가 공간 필요함

2.풀스캔, 레인지스캔 차이

1) 풀스캔: 테이블의 레코드를 처음부터 끝까지 읽음

2) 레인지스캔: 테이블의 일부 레코드만 엑세스

테이터가 많을 수록 더 빨라지는 index 검색 (레인지스캔)

3. Clustered Index(클러스터 형) VS Non Clustered Index(비클러스터 형) 차이

1) 클러스터형 인덱스

키 값에 대한 테이블의 데이터 행을 정렬하는 인덱스의 한 유형
인덱스 적용시 정렬작업 후 정렬된 순서를 정의함
데이터를 가리키는 포인터가 아닌 저장한 블록의 포인터 저장함

  • 테이블당 하나만 생성 가능
  • PRIMARY KEY에 의해 자동으로 생성된다.
  • UNIQUE NOT NULL에 의해 자동으로 생성된다.

2) 비클러스터형 인덱스

데이터와 인덱스를 각각 다른 위치에 저장
데이터를 가리키는(위치) 포인터를 저장함
색인과 같은 역할을 함

  • 테이블당 여러 개 생성 가능
  • UNIQUE, UNIQUE NULL에 의해 자동 생성

0개의 댓글