반응형
뷰
의미있는 데이터를 조회하기 위해 사용했던 복잡한 쿼리문들
> 매번 작성한다면 생산성이 떨어지고 오류가 발생할 수 있는 문제를 해결해, SQL 구문을 깔끔하게 유지하도록 돕는 것
기존에 만든 쿼리문을 하나의 가상 테이블로 만들어 두었다가 필요한 곳에 적절히 사용하는 기능
새로만든 뷰가 참조하는 뷰에 영향을 주지 않는 한 계속 확장 가능
뷰 > 뷰 > 뷰 >>...
뷰는 실제 테이블이 아니라 가상의 테이블, 뷰를 제거한 후에 참조한 테이블 삭제 가능
CREATE VIEW 이름 AS
SELECT 컬럼 FROM 기존데이터
인덱스
- 인덱스는 테이블에 대한 검색 속도를 높이기 위한 자료구조
- 특정 컬럼에 인덱스를 생성하면 해당 컬럼에 대한 데이터를 특정 조건(정렬 등) 기준으로 인덱스 자료구조를 생성
- 인덱스를 생성하고 인덱스 생성에 사용된 컬럼을 쿼리 조건 등에 사용하게 되면 DB 내부 옵티마이저를 통해 인덱스를 활용한 실행계획이 생성되어 조회에 사용된다.
- 옵티마이저 : 쿼리의 최적화된 실행 계획을 찾기 위해 두뇌 역할을 하는 데이터베이스의 엔진
-종류
- B-tree : 가장 기본적으로 사용되는 인덱스로 트리 형태의 자료구조로 되어있다. 기본키 생성 시 만들어지는 인덱스이다.
CREATE INDEX name ON table (column_name);
- Hash : Hash 테이블 형태의 Key, Value를 가지는 자료구조 형태로 되어있다.
CREATE INDEX name ON table USING HASH (column_name);
- GIN(Generalized Inverted Index) : 역색인 방식으로 Full-Text Search, GIN 인덱스를 통해 json 데이터 컬럼에 index 적용이 가능하다. 또한, Full-text Search 이므로 like 검색 등 더욱 다양한 검색 조건에서도 Index 스캔이 가능하다. PostgreSQL을 사용하게 된 계기가 된 인덱스이다.
CREATE INDEX name ON table USING GIN (column_name gin_trgm_ops);
반응형
'PostgreSQL' 카테고리의 다른 글
PSQL Postgresql 중복된 컬럼 제거하는 방법 (2) | 2023.12.20 |
---|---|
PSQL Postgresql 중복 허용 insert (0) | 2023.12.20 |
Postgresql JSON (0) | 2023.01.17 |
[pSQL] 배열 연산자와 함수 (0) | 2023.01.17 |
[pSQL] 조건문과 NULL 관련 함수 (0) | 2023.01.17 |