Index란? (DataBase)

UlBaMe·2023년 2월 1일
0

유투브 코딩애플에 올라온 영상 정리.
레퍼런스가 간단한 소개용 영상이기 때문에 제대로 된 명세서나 기본서 등에 비해 기초적이고 얕을 수 있지만 내가 부족하니까 쉬운 것부터 봐야지 뭐.


Index 란

일반적인 검색 수행

age = 20인 row 찾고싶다
select ? from ? where age = 20
-> 모든 row를 검색

index를 이용해서 찾는 경우

1~100 에서 숫자 찾기.
일반 검색 - 1, 2, 3... 순서대로 찾기
절반씩 줄여서 탐색
-> 50보다 큽니까? - 예 -> 75보다 큽니까? ...
-> 정렬이 되어 있어야 가능
-> age 컬럼만 복사해서 정렬해놓은 것이 index

정렬은 어떻게? Array 혹은 Linked List 등에 가능.
실제 데이터베이스들은 Tree 형태로 배치함.
-> 나열해서 정열하는 작업을 하지 않고 자료들을 연결만 해둠

Index의 데이터 구조

Binary Search Tree

성능개선?

위에는 가이드만 있고 맨 아래에 데이터 보관, 데이터끼리 연결되어 있으므로 범위검색이 수월함.

Index의 단점

기존 열의 내용을 복사해야 하므로 DB용량 더 많이 차지
기존 테이블 삽입/수정/삭제할 때 인덱스에 반영해야 하므로 성능 저하(크진 않음)
Primary key로 설정된 Column은 자동으로 정렬이 되어 있기 때문에 Indexing이 필요 없음. 이를 Clustered Index라고 칭하기도 함.

0개의 댓글