Mongoose查询时间在连续调用时呈指数增长



我正在研究一个nestjs应用程序,我在这样的api中使用猫鼬查找查询,但是当反复轮询时,查询时间每次都在增加。最初几次以毫秒为单位,然后以秒为单位,最后以分钟为单位,挂起整个应用程序。但这种情况只发生在没有大量记录的数据对中。对于较小的对则不会。

我尝试分别应用addresschainId的索引,并将其合并,但无济于事。这是我的查询

const swaps = await this.PairSwapModel.find(
{
pairAddress: address.toLowerCase(),
chainId
},
{
hash: 1,
amount0In: 1,
amount0Out: 1,
amount1In: 1,
amount1Out: 1,
amountUSD: 1,
priceInToken0: 1,
priceInToken1: 1,
timestamp: 1,
token0Address: 1,
token1Address: 1,
}
).sort({ timestamp: -1 })

总的来说,我认为这里的信息太少了。如果您为有问题的查询版本提供.explain("executionStats")输出,那么我们将能够提供更多帮助。

话虽如此,下面这句话可能很重要:

我尝试分别应用addresschainId的索引,但没有效果。

根据问题中的信息,似乎没有名为"address";在你的文档中。相反,字段名似乎是pairAddress。我们也不知道代码片段中chainId变量的值是多少。如果我们假设它是同名字段(例如chainId: <value>)上的某个相等过滤器,那么以下索引应该可以提高性能:

{ pairAddress: 1, chainId: 1, timestamp: -1 }

相关内容

  • 没有找到相关文章

最新更新