본문 바로가기
기본 쌓기/우아한테크

우아한테크)인덱스

by code_learner 2022. 5. 7.

https://www.youtube.com/watch?v=NkZ6r6z2pBg

https://www.youtube.com/watch?v=9ZXIoh9PtwY 


1. index란?
검색을 위해 임의의 규칙대로 부여된 임의의 대상을 가리키는 무언가

인덱스가 왜 필요할까
데이터를 디스크로부터 가져와야하는데 매번 왔다갔다하는건 시간이오래걸리기 때문에
컴퓨터는 자주 사용되는 테이블을 메모리에 데이터를 올린다.
이때 데이터를 요청할 때 메모리에 있으면 빠르고, 메모리가 없으면디스크에 모든 테이블을 스캔해야한다.
-> 주소록과같은 index를 만들어서관리한다

1-2.인덱스의 구조와 원리
B-tree
자식노드의 개수가 2개이상인 트리
->수직적으로 조건에 맞는 Branch노드에 들어간 후 수평적으로 조건에 맞는 node에 들어가게 된다.


2. 인덱스의 종류
-Clustered 
-군집화
-Clustered Index: 군집화된 인덱스
인덱스와 데이터가 군집

41: 창수, index123
42: 챙수, index321
43: 민수, minsu123
44: 만수, mansu123
45: 중수, jungsu78

-> 순서대로 정렬되어있다,Auto_Increment
한 테이블당 하나만
범위검색시 강력! -> 부분만 가져오면 되기 때문 
but 존재하는 pk 중간에 삽입, 정렬비용이 높아지면 매우 비효율적
-non-clustered
어떤 index와 연결되어있다. 간접 참조

45: 123 123-> 중수, jungsu78
20: 200 200-> 고수, GOSU88
1: 432 432-> 커피, COFFEE12
44: 584 584-> 만수, mansu123
43: 777 777-> minsu123

-> 순서대로 정렬할 필요가 없다
-> 해쉬 방식(인덱스)으로 쉽게 찾을 수 있다.
한 테이블에 여러개(등수, 학번,.....)
추가 저장 공간이 필요하다(약 10%)
Insert시 추가 작업 필요(인덱스 생성)


Cardinality 카디널러티: 유일한 값일수록 높아짐
인덱스는 Cardinality가 높은값일수록 사용하기 좋아짐


-> index는 select에서만 거희 사용된다.









 

댓글