如何解决为nosql数据库建模以实现最佳性能
我有一个足球联赛,里面有很多球队和固定装置。 NoSQL数据库如下所示:
collection: teams,documents: team1,team2... //about 50 per league
collection: fixtures,documents: fixture1,fixture2... //about 300 per league
很快就会有更多的联赛,而且我不知道如何为数据库建模以实现最佳性能。
选项1:保留当前模型
我可以保留当前模型,只需在每个文档中添加一个带有联赛ID的字段。
选项2:为每个联赛创建子收藏集
我可以为每个联赛创建一个子集合。看起来像这样:
collection: teams,documents: league1,subcollection: teams,team2...
这些数字可能太小而无法进行性能优化。但是我也收藏了每个联赛最多1万张文件的收藏。
您将如何为NoSQL数据库建模?
解决方法
集合的大小对性能没有影响。 Firestore自动将索引和文档分片,以在其中分配查询成本。唯一重要的是您实际阅读的文档数。因此,如果您从大小为10000的集合中请求10个文档,则其执行与从大小为100000的集合中对10个文档的查询相同。
由于集合的大小与性能无关,所以您应该以适合您其他要求或个人喜好的任何方式对数据建模。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。