使用MongoDb时我是否会遇到有关文件大小的问题?

时间:2012-07-28 11:56:02

标签: zend-framework mongodb

我正在尝试开发一个专业的社交网络,我使用mongodb到数据库,我想问一下我是否会对数据库有关于文档大小的问题。知道我们计划在社交网络中拥有大量用户。我希望我能得到你的反馈意见。

2 个答案:

答案 0 :(得分:3)

'大量用户'有些模糊。粗略估计有助于..无论如何,MongoDB中的文档大小限制为16MB,看起来足以存储用户的配置文件详细信息。但是,在您的“网络”用例中,您可能正计划保留关注者/朋友。是否将它们存储在与用户配置文件相同的文档中本身就是一个不同的问题。您可能想要检查这些:

What is a good MongoDB document structure for most efficient querying of user followers/followees?
http://www.10gen.com/events/common-mongodb-use-cases
http://docs.mongodb.org/manual/use-cases/
http://nosql.mypopescu.com/post/316345119/mongodb-usecases

答案 1 :(得分:1)

您可能遇到的一个问题是MongoDB为每个文档中的每个字段存储字段名称的文本。因此,如果您有一个名为“名称”或“地址”的字段,您需要一组文档,文本将出现在每个文档中,占用空间。这与具有模式的关系数据库不同,其中列的名称仅存储一次。

几年前,我参与了一个项目,当他们模拟数百万用户时,工程师对数据集的大小有点意外,因为他们没有考虑到这一点。他们优化了数据的大小(即“loc1”而不是“Location 1”),但是对于字段名称没有做同样的事情。当习惯于RDBM开发的开发人员对NoSQL解决方案做出假设时,它就是问题,他们只计算数据的大小,而不是字段名和字段值。

他们很高兴他们在测试之前就在测试中发现了这一点,否则他们将不得不迁移每个实时文档以实现他们想要的更改。

这不是什么大问题,当然不是不使用MongoDB的理由(更少的架构并将每个文档视为一个独特的项目毕竟是一个功能而不是一个bug或设计缺陷)。请记住一些事情。