반응형
https://leopard.in.ua/2015/04/13/postgresql-indexes#.XfeTyugzZaR

Index는 추가적인 자료구조로서 아래의 목적들의 달성을 위해 도움이 된다:

1. 데이터 검색

2. Optimizer

3. JOIN

4. Relation: except/intersect를 위해 사용될 수 있다.

5. Aggregation: COUNT/MIN/MAX 등의 Aggregatation function들을 효율적으로 계산할 수 있게 해준다.

6. Grouping

 

Index Types: PostgreSQL에는 여러가지 Index타입들이 있으며 각각 다른 사용법을 가지고 있다.

 

B-Tree index: B-Tree는 CREATE INDEX를 하면 default로 생성되는 index이다. B-Tree의 B는 Balanced의 줄임말로서 트리의 양쪽이 거의 같은 양의 데이터를 가지도록 하는 것이 기본개념이다. B-Tree는 self-balancing 트리로서 sorted data를 유지하고, 검색, 순차적인 접근, 삽입, 삭제를 log시간안에 할 수 있는 자료구조이다. B-Tree는 큰 양의 데이터를 읽고 써야되는 경우에 용이하다.

https://en.wikipedia.org/wiki/B-tree

 

R-Tree index: R-Tree는 Rectangle-Tree의 줄임말이다. R-Tree는 주로 공간정보를 저장할 때 사용되는 트리다. 예를 들자면 지리좌표나, 다각형 좌표 등이다. R-Tree의 핵심 아이디어는 가까이 있는 객체들을 그들의 minimum bounding rectangle로 묶어 한단계 상위 계급인 트리로 표현하는 것이다. 모든 객체들은 이런 bounding rectangle에 포함되어 있고, 이 bounding rectangle과 intersect하지 않는 쿼리는 이 rectangle에 포함된 모든 객체들과도 intersect하지 않는다. leaf 레벨에서는 rectangle을 각각의 객체로 보고, 상위 레벨에서는 rectangle을 object들의 모음으로 본다.

 

https://en.wikipedia.org/wiki/R-tree
https://en.wikipedia.org/wiki/Minimum_bounding_rectangle

 

More:

Hash index

Bitmap index

GiST index

GIN index

반응형
블로그 이미지

개발자_무형

,