pile·
DB / 데이터·뷰노뷰노·

PostgreSQL GIN 인덱스를 통한 LIKE 검색 성능 개선

문제환자명 부분 일치(%LIKE%) 검색 시 인덱스 적용이 불가해 1,000,000건 데이터에서 O(N) Full scan이 발생했다.
접근PostgreSQL pg_trgm 확장으로 trigram(3글자 분할) 기반 GIN 인덱스를 생성했다. B-tree는 = 연산에 최적이지만 %LIKE%에는 Full scan과 동일하며, GIN 인덱스가 %LIKE%에 효과적임을 확인했다. SQLAlchemy에서도 postgresql_ops + postgresql_using으로 동일하게 구현했다.
결과%LIKE% 검색에서 GIN 인덱스 적용 후 약 9~10배 성능이 개선됐다.
뷰노
뷰노 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. DB / 데이터·pinterest-engPinterest Engineering·

    Pinterest 차세대 DB 수집 프레임워크의 자동화된 스키마 진화

    Pinterest의 CDC 기반 DB 수집 파이프라인은 MySQL에서 Kafka, Flink, Spark, Iceberg를 거치는 다층 구조다. 스키마 변경이 생기면 모든 계층을 동시에 업데이트해야 해 드리프트, 배포 실패, 데이터 불일치가 반복됐다. Pinterest 엔지니어링 팀은 이를 해결하기 위해 가산적 변경만 자동화하는 스키마 진화 프레임워크를 구축하고, PR 기반 롤아웃과 SLA 기반 일관성 모델을 도입했다.

    #data-pipeline#apache-flink#cdc+2