Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 存储名称与按id从缓存中检索_Performance_Mongodb_Memcached - Fatal编程技术网

Performance 存储名称与按id从缓存中检索

Performance 存储名称与按id从缓存中检索,performance,mongodb,memcached,Performance,Mongodb,Memcached,存储已发送电子邮件的简单mongodb集合: { msgid: objectid senderid: <some objectid>, sendername: <some name>, recip: [{memid:<objectid>, name:<some name>}, {memid:<objectid>, name:<some name>}, ...] } { msgid:objec

存储已发送电子邮件的简单mongodb集合:

{
    msgid: objectid
    senderid: <some objectid>,
    sendername: <some name>,
    recip: [{memid:<objectid>, name:<some name>}, {memid:<objectid>, name:<some name>}, ...]
}
{
msgid:objectid
森德里德:,
sendername:,
recip:[{memid:,name:},{memid:,name:},…]
}
包含有关邮件发件人和收件人的信息。现在,我正在尝试决定是在邮件中存储发件人/收件人名称,还是在检索邮件后解析它们。“解析”是指在主系统的memcached缓存中按id查找名称。每个邮件可能有1-10个收件人,我每个请求检索10-20个邮件,所以在最坏的情况下,我需要在每个页面请求中查找200个名称。该站点的负载将很高,因此我担心memcached上的负载,但另一方面,将名称与消息一起存储将大大增加磁盘空间的使用

非常感谢您的任何建议

将名称与消息一起存储 将增加使用的磁盘空间 戏剧性地

不要在意磁盘空间——磁盘空间什么都不是,它很便宜

毫无疑问,如果您的系统将高负载存储在
recip
上,那么您需要的一切(甚至包括母亲、父亲的姓名;)

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