Este documento descreve como ajustar os seus índices para alcançar um desempenho de consulta mais rápido e uma melhor capacidade de memorização no AlloyDB Omni.
Ajuste um índice IVF
Ajustar os valores que define para os parâmetros lists
, ivf.probes
e quantizer
pode ajudar a otimizar o desempenho da sua aplicação:
Parâmetro de aperfeiçoamento | 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 este 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 quer usar para a árvore K-means. O valor predefinido é SQ8 para um melhor desempenho das consultas. Defina-o como FLAT para uma melhor memorização. |
Criação de índice |
ivf.probes |
O número de listas mais próximas a explorar durante a pesquisa. O ponto de partida para este valor é sqrt(lists) . |
Tempo de execução da consulta |
Considere o exemplo seguinte que mostra um índice IVF
com os parâmetros de otimização definidos:
SET LOCAL ivf.probes = 10;
CREATE INDEX my-ivf-index ON my-table
USING ivf (vector_column cosine)
WITH (lists = 100, quantizer = 'SQ8');
Analise as suas consultas
Use o comando EXPLAIN ANALYZE
para analisar as estatísticas de consultas, conforme mostrado no seguinte exemplo de consulta SQL.
EXPLAIN ANALYZE SELECT result-column
FROM my-table
ORDER BY EMBEDDING_COLUMN <-> embedding('text-embedding-005', 'What is a database?')::vector
LIMIT 1;
A resposta de exemplo QUERY PLAN
inclui informações como o tempo necessário, o número de linhas analisadas ou devolvidas 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
Veja métricas do índice vetorial
Pode usar as métricas do índice vetorial para rever o desempenho do índice vetorial, identificar áreas de melhoria e ajustar o índice com base nas métricas, se necessário.
Para ver todas as métricas do índice vetorial, execute a seguinte consulta SQL, que usa a vista pg_stat_ann_indexes
:
SELECT * FROM pg_stat_ann_indexes;
Para mais informações sobre a lista completa de métricas, consulte o artigo Métricas do índice vetorial.