Mongodb可伸缩集合
创建可扩展且具有最佳读取性能的MongDB集合的最佳方法是什么?以下是假设Mongodb可伸缩集合,mongodb,collections,scalability,Mongodb,Collections,Scalability,创建可扩展且具有最佳读取性能的MongDB集合的最佳方法是什么?以下是假设 一个用户每天有100个条目。条目对用户是私有的 我们可能有20万用户。因此,每天几乎有200*200000=2000万条条目 用户喜欢在插入条目后立即查看条目 用户喜欢搜索自己的条目,即使数据已经有3个月了。3个月内,2000万*90 =1.8亿个条目 没有更新。仅插入和删除 我们心中的选择 基于用户名的分片。A.在一个碎片中的D等,但仍然很难扩展 为每个用户创建一个集合。我们知道这是一种激进的做法,但为什么不呢。
- 一个用户每天有100个条目。条目对用户是私有的李>
- 我们可能有20万用户。因此,每天几乎有200*200000=2000万条条目李>
- 用户喜欢在插入条目后立即查看条目李>
- 用户喜欢搜索自己的条目,即使数据已经有3个月了。3个月内,2000万*90 =1.8亿个条目李>
- 没有更新。仅插入和删除
- 基于用户名的分片。A.在一个碎片中的D等,但仍然很难扩展
- 为每个用户创建一个集合。我们知道这是一种激进的做法,但为什么不呢。我们没有跨用户数据进行聚合。MongoDB中收集数量的任何限制
谢谢。不幸的是,由于您可以拥有的名称空间数量(24000个)太多,每个用户一个集合将不起作用 我认为有几个好的方向可以走。您肯定会希望使用一个均匀分布的分片密钥——用户名就好了。您对其可扩展性有何顾虑
您可能希望签出(生存时间)集合,并让您的应用程序从辅助库读取。这可以通过分配工作负载来加快查询时间。不幸的是,由于您可以拥有的名称空间数量(24000)太多,每个用户一个集合将无法工作 我认为有几个好的方向可以走。您肯定会希望使用一个均匀分布的分片密钥——用户名就好了。您对其可扩展性有何顾虑
您可能希望签出(生存时间)集合,并让您的应用程序从辅助库读取。这可以通过分配工作负载来加快查询时间。在MongoDB世界中,没有最好的模式设计。在MongoDB中,模式设计取决于应用程序如何访问数据 以下是为MongoDB设计良好模式所需回答的关键问题:
- 你有多少数据
- 您最常见的操作是什么?您主要是插入新数据、更新现有数据还是执行查询
- 您最常见的问题是什么
- 你最常见的更新是什么
- 您希望每秒执行多少I/O操作
- (MongoDB正在运行)
- (视频3)
- 你有多少数据
- 您最常见的操作是什么?您主要是插入新数据、更新现有数据还是执行查询
- 您最常见的问题是什么
- 你最常见的更新是什么
- 您希望每秒执行多少I/O操作