Docs
Buscar⌘ K
  • Início
  • Sobre o The Graph
  • Redes Apoiadas
  • Contratos de Protocolo
  • Subgraphs
    • Substreams
      • Token API
        • AI Suite
          • Indexação
            • Recursos
              Subgraphs > Boas práticas

              2 minutos

              Boas Práticas de Subgraph 1 - Acelerar Queries com Pruning

              TLDR

              Pruning removes archival entities from the Subgraph’s database up to a given block, and removing unused entities from a Subgraph’s database will improve a Subgraph’s query performance, often dramatically. Using indexerHints is an easy way to prune a Subgraph.

              Como Fazer Pruning de um Subgraph com indexerHints

              Adicione uma secção chamada indexerHints ao manifest.

              O indexerHints tem três opções de prune:

              • prune: auto: Retains the minimum necessary history as set by the Indexer, optimizing query performance. This is the generally recommended setting and is the default for all Subgraphs created by graph-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: Não será feito pruning de dados históricos; guarda o histórico completo, e é o padrão caso não haja uma secção indexerHints. prune: never deve ser selecionado caso queira Queries de Viagem no Tempo.

              We can add indexerHints to our Subgraphs by updating our subgraph.yaml:

              1specVersion: 1.3.02schema:3  file: ./schema.graphql4indexerHints:5  prune: auto6dataSources:7  - kind: ethereum/contract8    name: Contract9    network: mainnet

              Considerações Importantes

              • Se quiser fazer Queries de Viagem no Tempo 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, use indexerHints: 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 o prune: never para manter todos os dados.

              • Não é possível criar enxertos 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).

              Conclusão

              Pruning using indexerHints is a best practice for Subgraph development, offering significant query performance improvements.

              Melhores Práticas para um Subgraph 1 – 6

              1. Improve Query Speed with Subgraph Pruning

              2. Improve Indexing and Query Responsiveness by Using @derivedFrom

              3. Improve Indexing and Query Performance by Using Immutable Entities and Bytes as IDs

              4. Improve Indexing Speed by Avoiding eth_calls

              5. Simplify and Optimize with Timeseries and Aggregations

              6. Use Grafting for Quick Hotfix Deployment

              ⁠Editar no GitHub⁠

              Smart Contract Analysis with Cana CLIArrays with @derivedFrom
              Nesta página
              • TLDR
              • Como Fazer Pruning de um Subgraph com indexerHints
              • Considerações Importantes
              • Conclusão
              • Melhores Práticas para um Subgraph 1 – 6
              The GraphStatusRede de TestesAtivos de MarcaFórumSegurançaPolítica de PrivacidadeAcordo de Serviço