DB에서 Index(인덱스) 개념과 동작 과정

개비의 끄적끄적·2023년 3월 30일

💡 Index(인덱스)란?

  • RDBMS(관계형 데이터베이스 관리 시스템)에서 테이블에 대한 검색 속도를 높여주는 자료 구조.
 책에서의 '목차'라고 생각하면 간단하게 설명 가능하다.

테이블에 특정 칼럼에 인덱스를 생성하는 것은 해당 칼럼의 데이터를 정렬한 후에 별도의 메모리 공간에 저장(key, value의 한 쌍으로)한다는 것을 의미.
마치 책의 앞부분에 목차 페이지가 별도로 존재하는 것처럼~!

인덱스를 생성하면 검색할 때 테이블을 모두 훑는게 아니라 인덱스 처리가 되어 있는 자료 구조를 통해 검색(범위 스캔 Range Scan)되기 때문에 검색 속도가 빨라진다는 장점이 있다.

💡 인덱스 동작 과정

인덱스(Index)는 칼럼이 Key(사용자가 인덱스를 지정한 칼럼)와 Value 두개로 이루어져 있다.

SELECT * FR0M EMP WHERE EMPNO = 172;
  • index가 없는 경우 : 172 정보가 디스크 어떤 블럭에 있는지 알 수 없기 때문에 모든 데이터를 scan하여 데이터를 찾는다
  • index가 있는 경우 : WHERE절의 조건으로 준 칼럼이 Index의 Key로 생성이 되어있는지 확인하고 인덱스를 통해 EMONO를 조회하고 172가 어떤 값들을 갖고 있는지 조회해서 해당 데이터를 보여준다


=> Full Scan을 최소화하여 빠르게 검색하는 것이 Index를 사용하는 이유!





📢 참고
https://wildeveloperetrain.tistory.com/131
https://spiderwebcoding.tistory.com/6

-> 어렵다.. 어려웡... 다시 이해하기 위해.. 나중에 참고 링크 다시 찬찬히 보면서 공부하기

profile
앗녕하세요! 블비의 개적발적🐾

0개의 댓글