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

                  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СтатусТестовая сетьБрундовые ресурсыФорумБезопасностьПолитика конфиденциальностиУсловия обслуживания