Docs
Поиск⌘ K
  • Главная страница
  • О The Graph
  • Поддерживаемые сети
  • Protocol Contracts
  • Субграфы
    • Субпотоки
      • Token API
        • Hypergraph
          • 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СтатусТестовая сетьБрундовые ресурсыФорумБезопасностьПолитика конфиденциальностиУсловия обслуживания