【问题标题】:How does facebook store the friends of a user?facebook如何存储用户的朋友?
【发布时间】:2011-07-15 22:05:38
【问题描述】:

我想知道 id 为 x 的用户与 id 为 z,y,w 的用户是朋友的信息是如何存储在像 facebook 这样的大规模应用程序中的。

我正在考虑几种可能性

a) 有一个表格,将友谊与相关人员的 id 作为外键映射,如下所示:

Person|isFriendsWith

x --------------------y

x ------------------ z

x------------------- w

在我看来,它根本无法很好地扩展。

b) 在用户行中有一个字段,该字段以字符串“#z#y#w”之类的序列化格式存储他们朋友的 ID。我想用正确的算法解析和更新这个字符串会很容易。

c) 与每个用户的朋友有一张单独的桌子。这会对服务器造成太大的负载吗?

d) 别的?

因此,如果有人知道 Facebook 的功能并可以分享详细信息,我们将不胜感激,这就是问题所在。此外,如果有人可以分享我在此处列出的内容无法很好地扩展或在性能方面存在其他问题的见解,我有兴趣听到它。

谢谢

【问题讨论】:

标签: facebook foreign-keys mysql


【解决方案1】:

这里有一些链接。第一个链接的页面中有一个链接,上面写着“非常复杂”,该链接指向一个模式的 flickr 图像。我不能保证这些链接中任何信息的正确性:

http://www.makeuseof.com/tag/facebook-work-nuts-bolts-technology-explained/

http://www.theregister.co.uk/2011/07/13/mike_stonebraker_versus_facebook/

http://gigaom.com/cloud/facebook-trapped-in-mysql-fate-worse-than-death/

http://snarfed.org/facebook_data_store_api_thoughts/

我提到的图像是通过分析 Facebook 开放的 API 中的业务实体创建的。 http://blogs.x2line.com/al/archive/2007/06/02/3124.aspx 那是 2007 年,所以可能不再具有代表性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多