2 minutes
Meilleure Pratique Subgraph 1 - Améliorer la Vitesse des Requêtes avec le Pruning de Subgraph
TLDR
L’élagage supprime les entités archivées de la base de données du Subgraph jusqu’à un bloc donné, et la suppression des entités inutilisées de la base de données d’un Subgraph améliore les performances d’interrogation d’un Subgraph, souvent de façon spectaculaire. L’utilisation de indexerHints
est un moyen facile d’élaguer un Subgraph.
Comment effectuer le Pruning d’un subgraph avec indexerHints
Ajoutez une section appelée indexerHints
dans le manifest.
indexerHints
dispose de trois options de prune
:
prune : auto
: Conserve le minimum d’historique nécessaire tel que défini par l’Indexeur, optimisant ainsi les performances des requêtes. C’est le réglage généralement recommandé et c’est le réglage par défaut pour tous les Subgraphs créés pargraph-cli
>= 0.66.0.prune: <Nombre de blocs à conserver>
: Définit une limite personnalisée sur le nombre de blocs historiques à conserver.prune : never
: Pas d’élagage des données historiques ; conserve l’historique complet et est la valeur par défaut s’il n’y a pas de sectionindexerHints
.prune : never
devrait être sélectionné si Les requetes Chronologiques sont désirées.
Nous pouvons ajouter des indexerHints
à nos Subgraphs en mettant à jour notre subgraph.yaml
:
1specVersion: 1.3.02schema:3 file: ./schema.graphql4indexerHints:5 prune: auto6dataSources:7 - kind: ethereum/contract8 name: Contract9 network: mainnet
Points Importants
-
Si les requêtes chronologiques sont souhaitées en plus de l’élagage, l’élagage doit être effectué avec précision pour conserver la fonctionnalité des requêtes chronologiques. Pour cette raison, il n’est généralement pas recommandé d’utiliser
indexerHints : prune : auto
avec les requêtes chronologiques. Au lieu de cela, élaguez en utilisantindexerHints : prune : <Nombre de blocs à conserver>
pour élaguer précisément à une hauteur de bloc qui préserve les données historiques requises par les requêtes chronologiques, ou utilisezprune : never
pour conserver toutes les données. -
Il n’est pas possible de greffer à une hauteur de bloc qui a été élaguée. Si le greffage est effectué de manière routinière et que l’élagage est souhaité, il est recommandé d’utiliser
indexerHints : prune : <Nombre de blocs à conserver>
qui conservera avec précision un nombre défini de blocs (par exemple, suffisamment pour six mois).
Conclusion
L’élagage à l’aide de indexerHints
est une meilleure pratique pour le développement de Subgraphs, offrant des améliorations significatives de la performance des requêtes.