Docs
Buscar⌘ K
  • Início
  • Sobre o The Graph
  • Redes Apoiadas
  • Contratos de Protocolo
  • Subgraphs
    • Substreams
      • Token API
        • Hypergraph
          • 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