반응형

Index 4

[PostgreSQL] PostgreSQL의 유니크 인덱스에 대해서 알아보자. (Unique Index)

A unique index guarantees that the table won't have more than one row with the same value. It's advantageous to create unique indexes for two reasons: data integrity and performance. Lookups on a unique index are generally very fast. 유니크 인덱스는 테이블에서 한개 이상의 row가 동일한 값을 갖지 않는 것을 보장한다. data integrity와 performance 측면에서 장점이 있다. 찾는 속도가 가장 빠르다. Only B-tree indexes can be declared unique. 오직 B-tree 인덱스만 ..

DB/PostgreSQL 2022.06.30

[PostgreSQL] PostgreSQL의 멀티 칼럼 인덱스에 대해서 알아보자. (Multicolumn Indexes)

An index can be defined on more than one column of a table. 인덱스는 테이블의 1개 이상의 컬럼에서 정의될 수 있다. CREATE TABLE test2( major int, minor int, name varchar ); SELECT name FROM test2 WHERE major = constant AND minor = constant; CREATE INDEX test2_mm_idx ON test2 (major, minor); 위의 예시와 같이 한 테이블에서 2개의 컬럼에서 인덱스 정의가 가능하다. 특징으로는 선언되는 순서가 매우 중요하다. 인덱스의 두 번째 컬럼은 첫 번째 컬럼에 의존해서 정렬되어 있는데 우선 그림으로 확인해보자. dept_no, emp..

DB/PostgreSQL 2022.06.30

[PostgreSQL] PostgreSQL의 GiST, SP-GiST Index에 대해서 알아보자.

(1) GiST 복합적인 지리학적(geometric) 데이터를 조회하는데 매우 유용한 인덱스이다. Full Text Search 에서도 사용한다. 인덱싱 과정은 아래 그림과 같은 방식이다. 분포 양을 내부적인 로직으로 점점 나눈다. 그래프로 한 번 알아보자. CREATE TABLE points(p point); INSERT INTO points(p) VALUES (POINT '(1,1)'), (POINT '(3,2)'), (POINT '(6,3)'), (POINT '(5,5)'), (POINT '(7,8)'), (POINT '(8,6)'); CREATE INDEX ON points USING GIST(p); 앞서 배운 Geometric Type을 사용해서 일부 점을 INSERT 했다. 그리고 점에 대해서..

DB/PostgreSQL 2022.06.19

[PostgreSQL] PostgreSQL의 B-tree, Hash Index에 대해서 알아보자.

RDBMS에서 핵심 기능 중 하나인 인덱스의 종류에 대해 알아보자. 인덱스를 특정 데이터를 빠르게 가져오는 기술이다. 일반적인 예로 백종원의 레시피 책을 본다고 하자. 근데 우리는 짜장면 레시피를 확인하고 싶다면 일일이 처음부터 짜장면이 나올 때 까지 찾을 수 있겠지만, 책의 색인을 통해서 'ㅈ'(지읒)을 찾고 지읒에 있는 리스트들을 쭉 내려가면서 짜장면이라는 단어를 찾고 해당 페이지로 넘어가는 방법도 있을 것이다. 바로 DB에서 후자의 기술을 인덱스라고 할 수 있다. 공식 문서에서 인덱스를 찾아보면 Indexes are a common way to enhance database performance. An index allows the database server to find and retrieve..

DB/PostgreSQL 2022.06.19
반응형