Facebook等大型社交网站的最佳RDBMS解决方案是什么?

时间:2010-02-10 20:48:04

标签: database facebook social-networking

我找到了两种可能的解决方案来实现Facebook等社交网站的数据库结构。

1:创建一个'Relationships'表并将每个友谊插入其中。例如:用户A将B添加为朋友(A-B),然后逻辑将(A-B)和(B-A)放入“关系”表中。然后它索引第一个属性。

2 .:为包含好友的所有用户创建一个唯一的表。大多数数据库使用近20亿个唯一表,因此不会出现问题;但是,数据库大小将近300倍(预计每位用户平均300个朋友)。在这种情况下,查询朋友不会有问题(就像SELECT * FROM一样简单)

有什么想法吗?我错了吗? 谢谢大家。

2 个答案:

答案 0 :(得分:3)

您描述的每用户表解决方案听起来基本上就像Oracle的分区功能。

不完全相关,但我推荐这篇精彩帖子:Presentation Summary “High Performance at Massive Scale: Lessons Learned at Facebook”

我认为友谊表是他们最关心的问题:)

答案 1 :(得分:1)

您不必担心最大的表格大小和类似的东西。为了创建像Facebook这样的网站,你必须将所有表格分割/分区到多台机器上。