我在生产中遇到了问题。我正在查询一个集合,它有大约200-300个文档。这是一个通过云函数进行的简单查询。我已经设置了一个计时器来记录每个查询的持续时间。
这个大约需要2-4秒。
const missionQuery = await this._firestore
.collection(this._collectionName)
.where('active', '==', true)
.where('archived_at', '==', null)
.get();这个花了2-3秒。
let missions = missionQuery.docs.map(doc =>
plainToClass(Mission, doc.data())
);也许我可以使用plainToClass来做一些事情,但是我知道我无法使用Firestore查询。我为这两个字段创建了一个复合索引,但没有帮助。当我查询较慢的集合时,它会更快。
有人知道如何提高这个查询的性能吗?
非常感谢
发布于 2020-12-30 14:50:56
没有任何方法可以加快(或减缓)查询。
固定恢复查询性能主要受您请求的数据量的影响,因此减少该性能将是您的最佳选择。最简单的方法是请求更少的文档,但另一种方法是通过创建单独的集合(仅包含所需的每个文档的字段)或通过using server-side projection with the select method来请求每个文档的数据更少。
https://stackoverflow.com/questions/65506314
复制相似问题