存储名称与通过id从缓存中检索

时间:2011-06-03 19:16:27

标签: performance mongodb memcached

存储已发送电子邮件的简单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消息将显着增加使用的磁盘空间。

任何建议都非常感谢!

1 个答案:

答案 0 :(得分:0)

  

存储名称和消息   会增加使用的磁盘空间   显着。

不关心磁盘空间 - 磁盘空间不算什么,它很便宜。

如果您的系统将高负荷存储在recip所需的一切(甚至是母亲,父亲的姓名;)),毫无疑问。

  1. 对数据进行非规范化以提高应用程序速度并减少对数据库的请求数量(甚至是内存缓存)。
  2. 如果需要,在后台更新非规范化数据。
  3. 我按照上面描述的方式在我的项目中工作,一切工作都很快;)。但这只是我的意见和我的解决方案。其他人可能会有所不同。

相关问题