Google cloud firestore Firestore文档充满键/值或多个文档-哪一个更快/更快?
如果我试图存储电子邮件的键/值对:电话,最好是一个文档中充满电子邮件:电话字段,还是多个文档,其中document.id将是电子邮件,每个文档都列出一个电话 例1:Google cloud firestore Firestore文档充满键/值或多个文档-哪一个更快/更快?,google-cloud-firestore,Google Cloud Firestore,如果我试图存储电子邮件的键/值对:电话,最好是一个文档中充满电子邮件:电话字段,还是多个文档,其中document.id将是电子邮件,每个文档都列出一个电话 例1: collectionA -> documentA -> "email1": (number) 1234567890, "email2": (number) 1234567899,
collectionA -> documentA -> "email1": (number) 1234567890,
"email2": (number) 1234567899,
...
例2:
collectionA -> documentA -> "email1": (number) 1234567890,
documentB -> "email1": (number) 1234567899
...
如果我有一个100的数据集呢?1000? 几千
我认为示例2会更好,因为示例1要求在访问所需的键/值之前加载整个文档,对吗
编辑:这是基于我知道电子邮件但不知道电话号码。只有在检查特定用例时才能确定哪一个“更好”。任何一个都不是100%的,都比另一个有充分的优势 #1的问题:
- 大量条目最终将达到文档的最大限制(1MB),此时写入将失败
- 如果只查找一个条目,则需要读取所有条目,因为无法读取部分文档(但是,仅在移动客户端上,服务器SDK可以进行投影)
- 在不知道电子邮件的情况下,不可能按号码查询
- 读取整个N组需要N次文档读取。对于非常大的数据集,这可能会比需要的更昂贵,并且可能比读取一个包含所有内容的文档要慢
您必须选择哪些问题对您的预期用例不那么糟糕。Hey@Doug,感谢您列出了我在这两种方法中没有考虑到的优点和缺点!