问题:应用程序中有成千上万的用户(但少于500K)。
解决方案:将每个用户的集合(10-20)存储在一个单独的用户名称空间中(每个客户端只有一个),以便通过从每个用户的id“列”转义来节省磁盘空间;加快命名空间小索引的查询时间;降低锁定率(https://jira.mongodb.org/browse/SERVER-1240);简化分片(https://jira.mongodb.org/browse/SERVER-939)。
这可以吗?或者也许我应该使用一个带名称空间的通用集合?
感谢您的回答。
答案 0 :(得分:1)
我想我理解你的问题,但如果我错了,请纠正我。您似乎希望将每个应用程序的用户存储在他们自己的集合中。这有几个优点和缺点,你必须根据复杂的DBA决定,如R / W比率,负载等来加权。
<强>优点强>
<强>缺点强>
在一天结束时,您可以实现大部分这些好处,同时通过简单地对某些应用程序密钥进行分片来避免这些缺点。许多收集场景很诱人,但我认为最终不是针对mongo进行优化的。