테크레터

테크레터 5편. 데이터베이스 인덱스

chandlerxx 2024. 1. 5. 11:07

오늘은 DB index 개념에 대해 알아보도록 하겠습니다. 코드를 이용해서 보여드리고 싶은데 다음에 추가업로드해보겠습니다ㅜㅜ

 

`Index`

등장배경&개념
대용량데이터 조회 시, 1~N번째까지 모든 데이터를 검색하는 것은 비효율적입니다. 좀더 빠르게 조회할 수 있는 개념이 필요했고 Index가 등장하게 되었습니다. 즉, DB 테이블에 대한 동작의 속도를 높여주는 자료구조를 의미합니다.

특징
테이블 내의 1개의 컬럼, 혹은 여러 개의 컬럼을 이용하여 생성되고 저장공간이 필요합니다.

-위키백과-

 

.

.

 

1. 인덱스 사용 목적


(참고자료)를 기준으로 설명드리겠습니다.

 

사용목적은 아래와 같습니다.

  • 대용량 데이터 조회시 selecet문의 조회 속도를 향상시키기 위함
    ㄴ반대로 해석하면 인덱스가 적용이 안된다면 조회속도가 늦고 성능도 떨어지겠죠

 

1) 인덱스 미적용

line by line으로 조회해야 됩니다.

 

Source : https://chartio.com/learn/databases/how-does-indexing-work/

 

 

2) 인덱스 적용된다면

데이터가 순서대로 정렬된 것으로 확인하실 수 있습니다. 이때, Index를 위해서 별도의 컬럼이 새로 생성된 것입니다.  

  • 신규 생성 : Index 컬럼 +기존데이터(UNIT + UNIT_COST)  

 

만약에 회사ID기준으로 18번을 찾고 있는경우라면, ID=18을 찾아 결과를 반환하고 이후에 ID=20을 조회할때 쿼리는 자동으로 종료됩니다. 

Source : https://chartio.com/learn/databases/how-does-indexing-work/

 

 

 

2.  index 알고리즘과 B-Tree 


 

1) Full Table Scan : 1~N까지 All

2) B-Tree

-Binary Search : 절반씩 값을 찾는

-Binary Tree : 

-B-Tree(Balanced-Tree)

ㄴ 높이가 같아짐

 

 

 

 

 

 

 

2. To do


 

카디널리티 > index를 평가할 수 있는 효율

 

index사용시 주의사항

 

index란 무엇이고 어떻게 하면 index를 잘 설정할 수 있나요?

 

 

 

 

마치며