프로덕션에서 pgvector vs Qdrant: 1억 벡터 기준 벤치마크
· Infra Team · #벡터DB #Postgres #성능
배경
검색 시스템을 확장하면서 벡터 저장소 선택을 다시 검토했다. "Postgres만으로 충분하다"는 주장과 "전용 벡터 DB가 답"이라는 주장이 팽팽한 상황에서, 직접 측정이 필요했다.
측정 환경
- 벡터: 768차원, 1억 개
- 하드웨어: 32 vCPU, 128GB RAM
- 인덱스: HNSW (M=16, ef_construction=200)
핵심 수치
p99 지연 시간 기준:
- pgvector 0.7: 단일 노드에서 ~180ms
- Qdrant 1.10: 동일 조건에서 ~45ms
대신 pgvector는 운영 부담이 거의 없었다. 기존 Postgres 모니터링·백업이 그대로 적용된다.
의사결정
트래픽이 낮고 데이터가 5천만 미만이면 pgvector를 우선 검토할 만하다. 그 이상은 전용 벡터 DB로 가는 게 운영적으로도 편하다는 결론에 도달했다.
-- pgvector HNSW 인덱스 예시
CREATE INDEX ON documents
USING hnsw (embedding vector_cosine_ops)
WITH (m = 16, ef_construction = 200);