Hello,

kok nae-ga ha-myun an-dweneun MAGIC...🧚

웹 프로그래밍

INDEX.

✿도담도담 2023. 1. 18. 11:22

최근 업무를 하다가 인덱스의 중요성에 대해 한번 더 느낄 수 있는 상황이 오게 되어 메모해 놓으려고 한다.

.

.

.

인덱스가 없는 경우 SELECT를 했을 때 해당 테이블의 레코드를 전부 읽어 찾게 되는 FULL SCAN이 발생된다.

* FULL SACN 하드디스크에 저장되어있는 데이터들을 전부 탐색

만약 백만개의 데이터가 있는 테이블에서 값을 찾고 싶다면 우린 백만개의 데이터를 읽게 되는것이다!

(이 얼마나 비효율적인 상황인지 😥)

그렇다면 해당 상황에서 검색되는 컬럼에 인덱스가 걸려 있다면 어떻게 되는지 알아보자.

 

 

여러 블로그를 읽어보니 대표적으로 B-TREE 구조 기반으로 다른 구조들도 비슷하여

대부분 B-TREE 구조를 다루고 있는 듯 하다.

해당 블로그에 너무 잘 정리 되어있어 링크로 대체하려한다. (그림도 너무 깔끔👍)

https://velog.io/@emplam27/자료구조-그림으로-알아보는-B-Plus-Tree

 

[자료구조] 그림으로 알아보는 B+Tree

정렬된 순서를 보장하고, 멀티레벨 인덱싱을 통한 빠른 검색과 선형탐색까지 가능한 실전형 자료구조 B+ 트리입니다.

velog.io

 

 

인덱스의 대표적인 장단점으로 검색 속도는 빨라 지지만

INSERT, UPDATE, DELET 수행 시 인덱스 연산이 추가적으로 이루어져야 함으로써 성능 저하가 될 수 있다.

해당 원인도 위에 첨부한 블로그에서 자연스레 이해가 될 것이다.

...

이 밖에도 많은 인덱스 구조와 스캔 방법이 있어 찾아봤던 사이트를 참고용으로 남긴다.

https://ssunws.tistory.com/45

https://chartworld.tistory.com/18

https://ssunws.tistory.com/45