오늘은 DB index 개념에 대해 알아보도록 하겠습니다. 코드를 이용해서 보여드리고 싶은데 다음에 추가업로드해보겠습니다ㅜㅜ
`Index`
등장배경&개념
대용량데이터 조회 시, 1~N번째까지 모든 데이터를 검색하는 것은 비효율적입니다. 좀더 빠르게 조회할 수 있는 개념이 필요했고 Index가 등장하게 되었습니다. 즉, DB 테이블에 대한 동작의 속도를 높여주는 자료구조를 의미합니다.
특징
테이블 내의 1개의 컬럼, 혹은 여러 개의 컬럼을 이용하여 생성되고 저장공간이 필요합니다.
-위키백과-
.
.
1. 인덱스 사용 목적
(참고자료)를 기준으로 설명드리겠습니다.
사용목적은 아래와 같습니다.
- 대용량 데이터 조회시 selecet문의 조회 속도를 향상시키기 위함
ㄴ반대로 해석하면 인덱스가 적용이 안된다면 조회속도가 늦고 성능도 떨어지겠죠
1) 인덱스 미적용
line by line으로 조회해야 됩니다.
2) 인덱스 적용된다면
데이터가 순서대로 정렬된 것으로 확인하실 수 있습니다. 이때, Index를 위해서 별도의 컬럼이 새로 생성된 것입니다.
- 신규 생성 : Index 컬럼 +기존데이터(UNIT + UNIT_COST)
만약에 회사ID기준으로 18번을 찾고 있는경우라면, ID=18을 찾아 결과를 반환하고 이후에 ID=20을 조회할때 쿼리는 자동으로 종료됩니다.
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를 잘 설정할 수 있나요?
마치며
'테크레터' 카테고리의 다른 글
테크레터 7편. 자바 스크립트 관련 잡담(feat. 설문조사) (0) | 2024.01.29 |
---|---|
테크레터 6편. 내가 알고 싶은 Github 기능 - Issue, Pull requests (3) | 2024.01.15 |
테크레터 4편. HTTP request 메서드 (0) | 2023.12.29 |
테크레터 3편. 누가 Restful API 소리를 내었는가 (0) | 2023.12.22 |
테크레터 3편. 컴파일러와 인터프리터의 차이는 무엇인가요? (0) | 2023.12.19 |