[POSTGRE] pg_bigm

반응형

1. pg_bigm

-. pg_bigm 모듈은 PostgreSQL 에서 전체 텍스트 검색 기능 (full text search) 를 제공 합니다.
-. 이 모듈을 사용하면 더 빠른 전체 텍스트 검색 을 위해 2-gram 인덱스를 만들 수 있다.
-. 여기서 2-gram 인덱스라는 것은 문자열의 연속된 2개 문자마다 인덱스 항목을 만드는 것을 의미

 

 

 

 

2. 설치

wget https://github.com/pgbigm/pg_bigm/archive/refs/tags/v1.2-20240606.tar.gz

tar -xvzf v1.2-20240606.tar.gz 

cd pg_bigm-1.2-20240606

make&&make install

 


3. Extension 설치

CREATE EXTENSION pg_bigm;

 

 

4. 생성 방법

create table bg_test(col1 timestamp, col2 text);

insert into bg_test values(current_timestamp,'PostgreSQL 16은 성능, 확장성, 보안이 크게 향상된 오픈소스 관계형 데이터베이스입니다. 주요 기능으로는 쿼리 성능 최적화, 병렬 처리 개선, JSON 데이터 처리 강화 등이 포함되며, AI/ML 워크로드를 위한 데이터 처리를 효율적으로 지원합니다. 또한, 관리 편의성과 보안 기능이 강화되어 대규모 환경에서도 안정적인 운영이 가능합니다. ANSI SQL 표준을 준수하며, 확장 모듈을 통해 다양한 데이터 타입과 언어를 지원해 유연성이 높습니다.' );

-- index column 1개일때
create index idx_bp_test_1 on bg_test using gin(col2 gin_bigm_ops);

-- 컬럼수가 적어서 강제로 index 태우기 위해 off
SET enable_seqscan TO off;

explain analyze select * from bg_test where col2 like '%보안%';

"Bitmap Heap Scan on bg_test  (cost=8.54..12.56 rows=1 width=40) (actual time=0.092..0.093 rows=1 loops=1)"
"  Recheck Cond: (col2 ~~ '%보안%'::text)"
"  Heap Blocks: exact=1"
"  ->  Bitmap Index Scan on idx_bp_test_1  (cost=0.00..8.54 rows=1 width=0) (actual time=0.063..0.064 rows=1 loops=1)"
"        Index Cond: (col2 ~~ '%보안%'::text)"
"Planning Time: 0.066 ms"
"Execution Time: 0.164 ms"


※ index 2개 이상 설정할때 생성방법
CREATE INDEX 인덱스명 ON pg_tools USING gin (컬럼1명 gin_bigm_ops, 컬럼2명 gin_bigm_ops) WITH (FASTUPDATE = off)


Note
If you set the FASTUPDATE parameter to False for a GIN index, the GIN index does not have a pending list. In this case, this function returns two values, 0 and 0.

 

 

 

반응형

'Database > Postgre' 카테고리의 다른 글

[POSTGRE] pg_cron  (0) 2024.11.01
[POSTGRE] pg_store_plans  (1) 2024.10.18
[POSTGRE] 패스워드 복잡성 설정  (0) 2024.07.30
[POSTGRE] HBA등 설정파일  (0) 2024.07.12
[POSTGRE] 수동 설치  (0) 2023.12.15