Firestore获得100个文档性能

时间:2019-04-30 17:30:16

标签: firebase go nosql google-cloud-firestore

我想知道Firestore的性能期望是什么,以及我们所看到的是否符合要求。查询100个项目,使用getAll在快照中进行迭代需要2.6秒以上的时间。

此测试的Go代码为:

    startTime = time.Now()
    query := client.Collection("my_collection").
        Where("id", "==", id).
        OrderBy("add_date", firestore.Desc).
        Documents(context.Background())
    fmt.Printf("\n Query Firestore %f:", float64(time.Since(startTime).Nanoseconds())/1000000000)

    startTime = time.Now()
    query.GetAll()
    fmt.Printf("\n Get All Documents: %f", float64(time.Since(startTime).Nanoseconds())/1000000000)
 Query Firestore : 0.000049 Seconds
 Get All Documents: 2.675766 Seconds

对于大数据集,这似乎非常不可用。 SQL中相同的查询总共不到0.3秒,而这些结果与任何实际查询都没有关系,只是从表中获取100个文档需要2.5秒。

即使我将查询限制在一个文档中,我也会得到

 Query Firestore: 0.000022
 Get 1 Document: 1.629762

1.6秒获取一个文档似乎很慢。

Firestore吹捧的功能之一是它可以无限扩展扫描规模,但是似乎实际读取大量数据的性能受到限制。这个问题更加复杂,尝试拉动1000个对象需要7秒钟。应该不要使用Firestore一次尝试读取100个以上的文档?

0 个答案:

没有答案