요약

Completed

이 모듈에서는 AZURE Database for PostgreSQL 및 AI 워크로드용 pgvector를 최적화하는 방법을 알아보았습니다. SSD 스토리지에 최적화된 메모리 설정 및 shared_bufferswork_mem쿼리 플래너 설정을 포함하여 벡터 쿼리 성능에 영향을 주는 PostgreSQL 구성 매개 변수를 살펴보았습니다. IVFFlat과 HNSW 벡터 인덱스의 차이점을 알아보았습니다. 데이터 세트 크기, 정확도 요구 사항, 메모리 제약 조건 및 빌드 시간 허용 오차에 따라 각각이 적절한 시기를 이해했습니다. 인덱스 매개 변수 lists, probes, m, ef_construction를 구성하여 쿼리 속도와 ef_search 회수 정확도의 균형을 맞추도록 했습니다.

데이터 레이아웃 결정이 필터링된 벡터 검색 성능에 미치는 영향을 발견했습니다. B-트리 인덱스가 있는 구조적 열은 일반적인 조건자를 효율적으로 필터링하는 반면, GIN 인덱스가 있는 JSONB는 동적 특성에 대한 유연성을 제공합니다. PostgreSQL에서 실행 계획을 최적화할 수 있는 쿼리 패턴을 사용하여 벡터 유사성과 메타데이터 필터를 효과적으로 결합하는 방법을 배웠습니다. 대규모 데이터 세트의 경우 쿼리 성능과 유지 관리 작업을 모두 개선하는 테이블 분할 전략을 살펴보았다.

또한 Azure에서 대용량 벡터 워크로드에 대한 크기 조정 전략을 배웠습니다. 메모리 최적화 컴퓨팅 계층을 사용한 수직 크기 조정은 인덱스를 메모리에 캐시된 상태로 유지합니다. 읽기 복제본은 읽기 작업이 많은 워크로드에 대한 쿼리 부하를 분산합니다. Azure Cache for Redis를 사용한 애플리케이션 수준 캐싱은 자주 요청되는 데이터에 대한 데이터베이스 부하를 줄입니다. 마지막으로, 트랜잭션 모드의 PgBouncer 구성 및 애플리케이션 수준 연결 풀링을 비롯한 연결 최적화 기술을 구현하여 연결 제한 내에서 처리량을 최대화했습니다.

추가 리소스