Boas Práticas de Subgraph 1 - Acelerar Queries com Pruning
Reading time: 2 min
O retira entidades de arquivo do banco de dados de um subgraph até um bloco especificado; e retirar entidades não usadas do banco de dados de um subgraph tende a melhorar muito o desempenho de queries de um subgraph. Usar o indexerHints
é uma maneira fácil de fazer o pruning de um subgraph.
Adicione uma secção chamada indexerHints
ao manifest.
O indexerHints
tem três opções de prune
:
prune: auto
: Guarda o histórico mínimo necessário, conforme configurado pelo Indexador, para otimizar o desempenho dos queries. Esta é a configuração geralmente recomendada e é padrão para todos os subgraphs criados pelagraph-cli
>= 0.66.0.prune: <Number of blocks to retain>
: Determina um limite personalizado no número de blocos históricos a serem retidos.prune: never
: Nenhum pruning de dados históricos; guarda o histórico completo e é o padrão caso não haja uma secçãoindexerHints
. Oprune: never
deve ser selecionado caso queira .
Podemos adicionar indexerHints
aos nossos subgraphs ao atualizar o nosso subgraph.yaml
:
specVersion: 1.0.0schema:file: ./schema.graphqlindexerHints:prune: autodataSources:- kind: ethereum/contractname: Contractnetwork: mainnet
-
Se quiser fazer junto com pruning, o pruning deve ser realizado com precisão para manter a funcionalidade das Queries de Viagem no Tempo. Portanto, não recomendamos usar
indexerHints: prune: auto
com Queries de Viagem no Tempo. Em vez disto, useindexerHints: prune: <Number of blocks to retain>
para fazer um pruning preciso até uma altura de bloco que preserve os dados históricos requeridos por Queries de Viagem no Tempo, ou use oprune: never
para manter todos os dados. -
Não é possível criar a uma altura de bloco que já tenha passado por pruning. Se enxertos forem realizados com frequência e o pruning for desejado, recomendamos usar
indexerHints: prune: <Number of blocks to retain>
que guardarão com precisão um número determinado de blocos (por ex., o suficiente para seis meses).
O pruning com indexerHints
é uma boa prática para o desenvolvimento de subgraphs que oferece melhorias significativas no desempenho de queries.