서론 : 

DBMS에 따라 처리단위가 다르다 (ex. Oracle - Block단위 , MySQL - Page 단위)

page가 클수록 효율적인 것은 아님, 적절한 Size가 제일 좋음

 

정의 : 

Index는 목차이며, data를 찾을때 처음부터 끝까지 확인하는 것을 방지해 준다.

추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색속도를 향상시킬 수 있다.

장단점 : 

장점

  • 테이블을 조회하는 속도와 그에 따른 성능을 향상시킬 수 있다.
  • 전반적인 시스템의 부하를 줄일 수 있다.

단점

  • 인덱스를 관리하기 위해 DB의 약 10%에 해당하는 저장공간이 필요하다.
  • 인덱스를 관리하기 위해 추가 작업이 필요하다.
  • 인덱스를 잘못 사용할 경우 오히려 성능이 저하되는 역효과가 발생할 수 있다.

 

자료구조 종류

 

1. 해시 테이블(Hash Table)

(Key, Value)로 데이터를 저장하는 자료구조, 빠른 데이터 검색이 필요할때 유용하다.

Key값을 이용해 고유한 index를 생성하고 그것을 활용한다.

시간 복잡도는 O(1)

 

2. B+ Tree

 자식 노드가 2개 이상인 B Tree를 업그레이드 시킨 자료구조이다.

 

  • 리프노드(데이터노드)만 인덱스와 함께 데이터(Value)를 가지고 있고, 나머지 노드(인덱스노드)들은 데이터를 위한 인덱스(Key)만을 갖는다.
  • 리프노드들은 LinkedList로 연결되어 있다.
  • 데이터 노드 크기는 인덱스 노드의 크기와 같지 않아도 된다.

 

O(logn)의 시간복잡도를 가지지만 해시테이블보다 인덱싱에 더욱 적합하다.

 

 


참고 : 

https://jeong-pro.tistory.com/114

https://mangkyu.tistory.com/96

https://chartworld.tistory.com/18

https://jungwoong.tistory.com/34

 

 

 

 

'개발합시다. > BackEnd 공부' 카테고리의 다른 글

정적 웹페이지 vs 동적 웹페이지  (0) 2021.08.27
웹사이트 배포란??  (0) 2021.08.27
Swagger란  (0) 2021.08.26
SOAP API 와 REST API  (0) 2021.08.25
데이터 베이스 정규화  (0) 2021.08.23

+ Recent posts