Firestore并行查询性能随查询数量同比下降原因排查
Firestore并行查询耗时随数量线性增长的原因
- 客户端并发连接限制:Firestore SDK默认有并发请求数上限(比如Web SDK默认最多同时处理6个请求),超过这个数的请求会进入队列等待,不是真正的全并行执行。你发起100个请求时,大部分都在排队等前面的请求完成,总耗时自然跟着请求数线性上升。
- 底层连接的复用限制:哪怕你开了一堆请求,Firestore底层可能复用TCP连接,但HTTP/1.1的连接同一时间只能处理一个请求;就算用HTTP/2多路复用,Firestore的服务器端或SDK也可能有额外调度限制,没法让所有请求真正同时处理。
- 服务器端的流量调度:Firestore服务器会对单个客户端的请求频率做限流,避免单用户占用过多资源。短时间内发大量请求,服务器会延迟处理部分请求,拉高总耗时。
- 客户端本地处理开销:每个请求都要做序列化、反序列化、状态同步这些操作,单个开销不起眼,但100个堆起来,客户端本地的处理时间也会占不少比例。
内容的提问来源于stack exchange,提问作者RailTracer
相关产品推荐
相关产品推荐

