
PostgreSQL GIN 인덱스를 통한 LIKE 검색 성능 개선
두줄요약
PostgreSQL의 pg_trgm 기반 GIN 인덱스로 환자 정보 부분 일치 검색을 개선했습니다. 100만 건 환경에서 `%LIKE%` 검색은 약 9~10배 빨라졌습니다.
문제 상황
- 환자명·환자고유번호의 부분 일치 검색을 위한
%LIKE%조건 - 인덱스 미적용 시 전체 레코드 탐색에 따른 검색 지연
구조와 흐름
- B-tree 인덱스의 원본 값 기반 단일 값 탐색
- GIN 인덱스의 분할 요소 기반 포함 여부 탐색
pg_trgm의 문자열 3글자 단위 trigram 인덱싱
성능/운영 포인트
- 100만 건 환자 정보 레코드에서 무인덱스·B-tree·GIN 성능 비교
EXPLAIN ANALYSE로=및%LIKE%쿼리 실행 계획 확인%LIKE%검색에서 GIN 적용 후 무인덱스 대비 약 9~10배 개선
주의할 점
=연산에는 B-tree가 효과적이며 GIN은 전체 탐색과 동일하게 동작pg_trgm은 3글자 단위 분할 방식으로 3글자 이상 검색에서 효율 기대

