存储已发送电子邮件的简单mongodb集合:
{
msgid: objectid
senderid: <some objectid>,
sendername: <some name>,
recip: [{memid:<objectid>, name:<some name>}, {memid:<objectid>, name:<some name>}, ...]
}
包含有关邮件发件人和收件人的信息。现在,我正在尝试决定是否应该在邮件中存储发件人/收件人姓名,或者在我检索邮件后解决它们。通过“解析”我的意思是在主系统的memcached缓存中通过id查找名称。每条消息可能有1-10个收件人,每个请求检索10-20个消息,所以在最糟糕的情况下,我需要每页请求查找200个名称。该站点将是高负载,所以我担心memcached上的负载,但另一方面存储名称和teh消息将显着增加使用的磁盘空间。
任何建议都非常感谢!
答案 0 :(得分:0)
存储名称和消息 会增加使用的磁盘空间 显着。
不关心磁盘空间 - 磁盘空间不算什么,它很便宜。
如果您的系统将高负荷存储在recip
所需的一切(甚至是母亲,父亲的姓名;)),毫无疑问。
我按照上面描述的方式在我的项目中工作,一切工作都很快;)。但这只是我的意见和我的解决方案。其他人可能会有所不同。