Este documento descreve como ajustar seus índices para alcançar um desempenho de consulta mais rápido e um recall melhor no AlloyDB Omni.
Ajustar um índice IVF
Ajustar os valores definidos para os parâmetros lists
, ivf.probes
e quantizer
pode ajudar a otimizar o desempenho do aplicativo:
Parâmetro de ajuste | Descrição | Tipo de parâmetro |
---|---|---|
lists |
O número de listas criadas durante a criação do índice. O ponto de partida para definir esse valor é (rows)/1000 para até um milhão de linhas e sqrt(rows) para mais de um milhão de linhas. |
Criação de índice |
quantizer |
O tipo de quantizador que você quer usar para a árvore K-means. O valor padrão é SQ8 para melhorar o desempenho da consulta. Defina como FLAT para facilitar a memorização. |
Criação de índice |
ivf.probes |
o número de listas mais próximas a serem analisadas durante a pesquisa. O ponto de partida desse valor é sqrt(lists) . |
Tempo de execução da consulta |
Considere o exemplo a seguir, que mostra um índice IVF
com os parâmetros de ajuste definidos:
SET LOCAL ivf.probes = 10;
CREATE INDEX my-ivf-index ON my-table
USING ivf (vector_column cosine)
WITH (lists = 100, quantizer = 'SQ8');
Analisar suas consultas
Use o comando EXPLAIN ANALYZE
para analisar os insights de consulta, conforme mostrado no exemplo de consulta SQL a seguir.
EXPLAIN ANALYZE SELECT result-column
FROM my-table
ORDER BY EMBEDDING_COLUMN <-> embedding('text-embedding-005', 'What is a database?')::vector
LIMIT 1;
O exemplo de resposta QUERY PLAN
inclui informações como o tempo gasto, o número de linhas verificadas ou retornadas e os recursos usados.
Limit (cost=0.42..15.27 rows=1 width=32) (actual time=0.106..0.132 rows=1 loops=1)
-> Index Scan using my-scann-index on my-table (cost=0.42..858027.93 rows=100000 width=32) (actual time=0.105..0.129 rows=1 loops=1)
Order By: (embedding_column <-> embedding('text-embedding-005', 'What is a database?')::vector(768))
Limit value: 1
Planning Time: 0.354 ms
Execution Time: 0.141 ms
Visualizar métricas de índice vetorial
Use as métricas de índice de vetor para analisar a performance dele, identificar áreas de melhoria e ajustar o índice com base nas métricas, se necessário.
Para conferir todas as métricas de índice de vetor, execute a seguinte consulta SQL, que usa a visualização pg_stat_ann_indexes
:
SELECT * FROM pg_stat_ann_indexes;
Para mais informações sobre a lista completa de métricas, consulte Métricas de índice vetorial.