벡터 검색 권장사항

이 문서에서는 Spanner의 벡터 검색 성능을 최적화하기 위한 권장사항을 제공합니다.

Spanner 기본사항 이해하기

효과적인 Spanner 벡터 검색 성능 테스트를 수행하려면 Spanner 기본사항을 이해해야 합니다. 예를 들어 동일한 쿼리를 즉시 다시 실행하면 캐시로 인해 더 빠를 수 있습니다. 주로 따뜻한 데이터를 사용하는 애플리케이션의 성능을 테스트하려면 먼저 워밍업 읽기를 실행하세요.

다음 가이드를 참고하세요.

Spanner는 데이터베이스 분할을 기반으로 쿼리를 병렬로 처리합니다. 지속적인 프로덕션 쿼리 부하로 테스트하면 부하 기반 분할을 사용할 수 있으며, 이를 통해 병렬 처리가 증가하여 쿼리 성능이 향상됩니다. 향후 로드의 병렬 처리를 늘리려면 특히 KNN의 경우 데이터베이스를 사전 분할하는 것이 좋습니다.

벡터 검색 권장사항

이 문서에서는 다음과 같은 벡터 검색 권장사항을 설명합니다.

임베딩 열에 주석 달기

vector_length로 삽입 열에 주석을 답니다. 이 주석은 K-근접 이웃 (KNN) 검색의 성능 최적화를 지원하며 근사 최근접 이웃 (ANN) 검색의 필수 요건입니다.

상위 k 쿼리 사용

최근접 이웃을 찾으려면 LIMIT와 함께 ORDER BY 절을 사용하세요. 상위 k 쿼리는 벡터 검색에 매우 최적화되어 있습니다. WHERE 절에서 거리 기준점을 기준으로 필터링하지 마세요.

예를 들어 다음은 권장되지 않습니다.

SELECT d.DocId
FROM Documents AS d
WHERE COSINE_DISTANCE(d.DocEmbedding, @vector) < 1;

대신 다음을 사용하세요.

SELECT