【问题标题】:Firestore database reads/writes incredibly slowFirestore 数据库读取/写入速度非常慢
【发布时间】:2020-04-27 15:48:47
【问题描述】:

操作系统:Mac OS Catalina v 10.15.1

Python 版本:Python 3.7.1

Firestore pip 包版本:google-cloud-firestore 1.6.1

我正在一个非常简单的 Firestore 数据库上测试简单的数据库读取和写入。我正在查看包含 1 个数据项(字符串)的单个文档的单个集合;但是,当我尝试写入时(如下所示),我拥有的计时器(也在下面的代码中)显示第一次写入需要 超过 30 秒。读取也存在相同的行为。

但是,这仅在此 python 脚本中的第一次写入/读取时出现。所有后续写入/读取的时间大约为 100 毫秒(对于这么小的数据库来说仍然很慢)。我无法在 Internet 上找到此问题的副本,并且 Firestore Python SDK 文档中也没有提及此类行为。我在我的机器上本地运行以下代码。

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
import datetime

cred = credentials.Certificate("./path/to/adminsdk.json")
firebase_admin.initialize_app(cred)
db = firestore.client()

start = datetime.datetime.now()

#the below write takes >30 seconds to execute
doc_ref = db.collection(u'test_collection').document(u'test_document')
doc_ref.set({u'test_field':'data'})

time_after_first = datetime.datetime.now()
print(time_after_first - start)

#The below read takes 80 ms to execute
doc_data = doc_ref.get()
print(doc_data.get('test_field'))

print(datetime.datetime.now()-time_after_first)

print("done")

我在另一个 StackOverflow 帖子上发现了一个建议,建议使用 on_snapshot 而不是 get;但是,问题仍然存在(仅在大约 30 秒后才收到 DocumentSnapshot)。另外,这个问题不是get独有的,setupdate等也是如此。

任何提示将不胜感激!

【问题讨论】:

标签: python firebase google-cloud-platform google-cloud-firestore


【解决方案1】:

您应该考虑您的连接性能。我已经在我这边实现了这段代码,这里有效果。它从未达到0.5s。似乎 Firestore 的性能非常好。我希望这能帮助你解决它...

【讨论】:

  • 谢谢!切换到不同的网络似乎已经解决了这个问题——真的很奇怪;我的互联网连接在其他方面相当不错(12 ping,80mbps 下载,8 mbps 上传)。关于为什么我的原始网络可能会导致如此大的延迟有什么想法吗?
猜你喜欢
  • 2012-07-15
  • 1970-01-01
  • 2016-11-25
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 2012-02-25
  • 2019-03-26
相关资源
最近更新 更多