pgvector란?
PostgreSQL에 VECTOR 타입과 유사도 검색 인덱스를 추가하는 확장이다. Postgres 한 곳에서 관계형 + 벡터 작업을 함께 처리할 수 있다.
사용
CREATE EXTENSION vector;
CREATE TABLE docs (
id SERIAL PRIMARY KEY,
content TEXT,
embedding VECTOR(1536)
);
CREATE INDEX ON docs USING hnsw (embedding vector_cosine_ops);
SELECT content, embedding <=> $1 AS distance
FROM docs ORDER BY embedding <=> $1 LIMIT 5;
장점
- Postgres 단일 스택 유지
- 트랜잭션·조인 그대로
- Supabase·Neon·Crunchy에서 기본 제공
한계
수천만 벡터부터는 전용 벡터 DB(Qdrant, Weaviate)가 확장성·필터 성능에서 우위.