Docs
Поиск⌘ K
  • Главная страница
  • О The Graph
  • Поддерживаемые сети
  • Protocol Contracts
  • Субграфы
    • Субпотоки
      • Token API
        • AI Suite
          • Индексирование
            • Ресурсы
              Субграфы > Лучшие практики

              2 минуты

              Лучшая практика субграфа 1 — Улучшение скорости запросов с помощью сокращения (Pruning) субграфа

              Краткое содержание

              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.

              Как сократить субграф с помощью indexerHints

              Добавьте раздел с названием ‘indexerHints’ в манифест.

              indexerHints имеет три опции 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>: Устанавливает пользовательский предел на количество исторических блоков, которые следует сохранить.
              • prune: never: без сокращения исторических данных; сохраняет всю историю и является значением по умолчанию, если раздел indexerHints отсутствует. prune: never следует выбрать, если требуются Запросы на путешествия во времени.

              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

              Важные замечания

              • Если требуются Запросы на путешествия во времени и при этом нужно выполнить сокращение данных, сокращение необходимо выполнить точно, чтобы сохранить функциональность запросов на путешествия во времени. По этой причине обычно не рекомендуется использовать indexerHints: prune: auto с запросами на путешествия во времени. Вместо этого следует выполнить сокращение, используя indexerHints: prune: <Number of blocks to retain>, чтобы выполнить точное сокращение до высоты блока, которое сохранит исторические данные, необходимые для запросов на путешествия во времени, или использовать prune: never, чтобы сохранить все данные.

              • Невозможно выполнить графтинг на высоте блока, который был сокращен. Если графтинг выполняется регулярно и требуется сокращение данных, рекомендуется использовать indexerHints: prune: <Number of blocks to retain>, чтобы точно сохранить необходимое количество блоков (например, достаточное для шести месяцев).

              Заключение

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

              Лучшие практики для субграфов 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

              ⁠Редактировать на GitHub⁠

              Smart Contract Analysis with Cana CLIArrays with @derivedFrom
              На этой странице
              • Краткое содержание
              • Как сократить субграф с помощью indexerHints
              • Важные замечания
              • Заключение
              • Лучшие практики для субграфов 1-6
              The GraphСтатусТестовая сетьБрундовые ресурсыФорумБезопасностьПолитика конфиденциальностиУсловия обслуживания