Docs
搜索⌘ K
  • 主页
  • 关于 The Graph
  • 支持的网络
  • 协议合约
  • 子图
    • 子流
      • 代币 API
        • Hypergraph
          • AI Suite
            • 索引
              • 资源
                子图 > 最佳实践

                3 分钟

                子图最佳实践1-通过子图修剪提高查询速度

                TLDR

                修剪 会从子图的数据库中删除给定块内的存档实体,从子图数据库中删除未使用的实体将提高子图的查询性能,通常会显著提高。使用indexerHints是修剪子图的一种简单方法。

                如何用indexerHints修剪子图

                在清单中添加一个名为indexerHints的部分。

                indexerHints有三个修剪选项:

                • prune:auto:保留Indexer设置的最小必要历史记录,优化查询性能。这是通常推荐的设置,也是graph-cli>=0.66.0创建的所有子图的默认设置。
                • prune: <Number of blocks to retain>: 对要保留的历史块数量设置自定义限制。
                • prune: never:不修剪历史数据;保留整个历史记录,如果没有indexerHints部分,则为默认设置。prune: never:如果需要Time Travel Queries,则不应选择修剪。

                我们可以通过更新我们的subgraph.yaml将indexerHints添加到我们的子图中:

                1specVersion: 1.3.02schema:3  file: ./schema.graphql4indexerHints:5  prune: auto6dataSources:7  - kind: ethereum/contract8    name: Contract9    network: mainnet

                重要注意事项

                • 如果同样需要Time Travel Queries 和修剪,则必须准确执行修剪以保留Time Travel Query。因此,通常不建议在Time Travel Queries中使用indexerHints: prune:auto。相反,修剪使用indexerHints: prune: <Number of blocks to retain>:修剪:精确修剪到保留Time Travel Queries所需历史数据的块高度,或使用prune: never维护所有数据。

                • 在修剪过的块高度进行嫁接是不可能的。如果嫁接是常规操作,需要修剪,建议使用indexerHints: prune: <Number of blocks to retain>,这将准确地保留一定数量的块(例如足够六个月)。

                结论

                使用indexerHints进行修剪是子图开发的最佳实践,可以显著提高查询性能。

                子图最佳实践1-6

                1. 通过子图修剪提高查询速度

                2. 使用@derivedFrom提高索引和查询响应能力

                3. 通过使用不可变实体和字节作为ID来提高索引和查询性能

                4. 通过避免eth_calls提高索引速度

                5. 通过时间序列和聚合进行简化和优化

                6. 使用嫁接快速部署修补程序

                ⁠在GitHub上编辑⁠

                与Cana CLI的智能合约分析带有@derivedFrom的数组
                在此页面上
                • TLDR
                • 如何用indexerHints修剪子图
                • 重要注意事项
                • 结论
                • 子图最佳实践1-6
                The GraphStatusTestnetBrand AssetsForum安全Privacy PolicyTerms of Service